i=0
loop do
i += 1
next if i < 3
print i
break if i > 4
end
产生345这没有意义,因为当我达到3时,应该评估next
表达式,再次进入循环。合乎逻辑的是只打印4.为什么这段代码按照它的方式工作?
答案 0 :(得分:4)
如果您将在纸上跟踪此代码,您将看到:
i == 0
时:是0 < 3
?是=&gt; next
i == 1
时:是1 < 3
?是=&gt; next
i == 2
时:是2 < 3
?是=&gt; next
i == 3
时:是3 < 3
? no =&gt; print 3
;是3 > 4
否i == 4
时:是4 < 3
? no =&gt; print 4
;是4 > 4
否i == 5
时:是5 < 3
? no =&gt; print 5
;是5 > 4
是=&gt; break