如果三个条件为假,则执行代码

时间:2011-05-17 16:56:03

标签: ruby-on-rails ruby

当尝试将NaN插入数据库时​​,我试图跳过计算某些数字。我的代码如下:

unless @X = 0 || @Y = 0 || Z= 0 #Don't execute below code if any of the three values = 0
    #Do some stuff with @X, @Y and @Z
end

我知道X,Y和Z是正整数,因为它们应该是,但是这个语句不会触发unless子句中的代码块。我公然滥用||操作

3 个答案:

答案 0 :(得分:4)

您正在使用=分配运算符。您希望使用==相等运算符。您的代码应如下所示:

unless @X == 0 || @Y == 0 || @Z == 0
...
end

答案 1 :(得分:2)

您应该在==if子句中使用双等号(unless)进行比较,而不是单个等号(=)。

答案 2 :(得分:0)

特别是当您想要与零进行比较时,ruby中有一个内置命令,比执行== 0更快。

unless @x.zero? or @y.zero? or @z.zero?
  ...
end

您可以在此处使用||or