为什么除非在假的情况下返回条件?

时间:2016-08-05 00:01:30

标签: ruby

我有以下ruby代码块:

x = 1

loop do 
    x+=1

    next unless (x % 2) == 0
    puts x


    break if x >=10
end 

My output:
2
4
6
8
10

这里除非是(x % 2) ==0,这意味着它是假的,即x%2给出的余数不是0,那么它应该puts但所有2的倍数包括2本身给出(x%2)==0为真。除非声明或其他什么,我是否会误解?

2 个答案:

答案 0 :(得分:2)

FocusListener语句意味着返回循环的开头。我认为这就是你所缺少的。

因此,如果next为奇数,则x为false,因此执行(x % 2) == 0语句,这会导致程序跳过运行剩余的循环。这意味着奇数永远不会被打印出来。

答案 1 :(得分:2)

您的代码明确说明next unless (x % 2) == 0,与next unless x.even?相同,与next if x.odd?相同,这意味着“如果x是奇数,请转到下一循环迭代“。结果你得到了打印的偶数。