Как Ruby оценивает математические выражения как true / false? - PullRequest
1 голос
/ 22 июля 2010

Я изучаю учебники по Ruby из Учимся программировать , и у меня возникла проблема с циклом while.

Вот что я хочу сделать:

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

Я использую gets только для того, чтобы приостановить выполнение, чтобы увидеть результат. (Кстати, это високосный год)

В любом случае, когда y_now % 4 = 0, цикл while продолжается, и я не понимаю почему, поскольку это отличается от всего моего предыдущего опыта.

Хотя я не хочу, чтобы кто-то просто исправлял мой код, я действительно хочу понять, почему это происходит. Я, очевидно, только что начал Ruby, поэтому любая помощь, которую я получаю, очень ценится.

Примечание: это похоже на этот вопрос , но с целыми числами вместо строк.

1 Ответ

4 голосов
/ 22 июля 2010

В Ruby только объект nil и специальный объект false имеют значение «false», все остальное (включая целое число 0) - «true».Вы должны использовать while (y_now % 4) != 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...