我有以下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
为真。除非声明或其他什么,我是否会误解?
答案 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
是奇数,请转到下一循环迭代“。结果你得到了打印的偶数。