Ruby如何将数学表达式评估为true / false?

时间:2010-07-22 02:24:42

标签: ruby

我正在阅读Learn to Program的Ruby教程,我遇到了一个while循环问题。

这就是我想要做的事情:

while y_now % 4
    y_now += 1
    puts y_now % 4
end
gets

我正在使用gets暂停执行,所以我可以看到输出。 (这是寻找闰年,顺便说一句)

无论如何,当y_now % 4 = 0时,while循环继续,我不明白为什么,因为这与我以前的经历不同。

我不希望有人只修改我的代码,我真的很想知道为什么会这样。我显然刚刚开始使用Ruby,所以无论我得到什么帮助都非常感谢。

注意:这似乎与this question类似,但是使用整数而不是字符串。

1 个答案:

答案 0 :(得分:4)

在Ruby中,只有nil对象和一个特殊的false对象是“false”,其他一切(包括整数0)都是“true”。您应该使用while (y_now % 4) != 0