RUBY 中while和until用来写循环时, 需要注意有几种写法.
其中使用begin和end的写法是先执行循环体再判断条件的, 因此循环体至少被执行1次.
其他写法是先判断条件, 再执行循环体, 因此循环体可能执行0次或多次.
例如 :
结果输出"d", 说明了问题.
def tried
return false
end
while tried do puts("a") end # a single-line while loop
while tried # a multiline while loop
puts("b")
end
puts("c") while tried # single-line while modifier
begin # multiline while modifier
puts("d")
end while tried
结果输出"d", 说明了问题.
until 也一样 :
如下 :
def tried
return true
end
until tried do puts("a") end # a single-line while loop
until tried # a multiline while loop
puts("b")
end
puts("c") until tried # single-line while modifier
begin # multiline while modifier
puts("d")
end until tried