Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 多重比较的正确语法是什么?_Ruby_If Statement_While Loop - Fatal编程技术网

Ruby 多重比较的正确语法是什么?

Ruby 多重比较的正确语法是什么?,ruby,if-statement,while-loop,Ruby,If Statement,While Loop,Ruby中是否有适当的语法用于将多个值与同一个变量进行比较?例如: #!/usr/bin/ruby -w y = 15 p 'success' if y == 1 || y == 5 || y == -2 || y == 15132 || y == 3.14159265 || y == 15 可以按照以下的思路来写: y = 15 p 'success' if y == 1,5,-2,15132,3.14159265,15 如果是的话,这是否也适用于while循环 y = 15 whil

Ruby中是否有适当的语法用于将多个值与同一个变量进行比较?例如:

#!/usr/bin/ruby -w

y = 15
p 'success' if y == 1 || y == 5 || y == -2 || y == 15132 || y == 3.14159265  || y == 15
可以按照以下的思路来写:

y = 15
p 'success' if y == 1,5,-2,15132,3.14159265,15
如果是的话,这是否也适用于
while
循环

y = 15
while y != 1,5,-2,15132,3.14159265,15
y = rand(50)
p y
end
基于我的搜索,我倾向于相信这要么是不可能的,要么对我的搜索来说太模糊了

我希望是第二例


我已经考虑过一个数组写入解决方案,但它没有我想要的那么漂亮或简单。

您正在寻找的
包含?

p 'success' if [1,5,-2,15132,3.14159265,15].include? y

您正在寻找
include?

p 'success' if [1,5,-2,15132,3.14159265,15].include? y
从:

返回ary中第一个对象的索引,以便该对象==到obj。如果未找到匹配项,则返回nil

从:

返回ary中第一个对象的索引,以便该对象==到obj。如果未找到匹配项,则返回nil


对于更一般的情况,您可以使用any?带有比较块的方法;这有一个优点,除了==,还可以与运算符一起使用:

p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }

对于更一般的情况,您可以使用any?带有比较块的方法;这有一个优点,除了==,还可以与运算符一起使用:

p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }

完全相同的表达式规则适用于
if
while
。另外,在与浮点数进行比较时要小心——如果任何一个数字都是计算结果,则通常不会产生预期结果。完全相同的表达式规则适用于
if
while
。另外,在与浮点数进行比较时要小心——如果任何一个数字都是计算的结果,通常都不会产生预期的结果。我的那一个怎么样?请检查:)我的怎么样?请核对:)
p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }