这是使用while
的代码:
i = 0
num = 5
while i < num do
puts "Inside the loop! i = #{i}"
i += 1
end
这是使用until
的代码:
i = 0
num = 5
until i > num do
puts "Inside the loop! i = #{i}"
i += 1
end
有人可以举出一个例子,说明何时应该首选而不是另一个?对我来说,如果他们做同样的事情,没有理由让until
和 while
。在我看来,这就是为什么其他编程语言不兼得的原因。
答案 0 :(得分:15)
哪个更好:
makeSoup while !ingredients.empty?
makeSoup until ingredients.empty?
while
和until
执行相同的操作,在某些情况下,只有“更好”才能阅读。
答案 1 :(得分:11)
这是关于可读性的。 “正确”的例子是完全主观:
done = my_function until done
或
done = false
until done
# better than "while not done"? Who can say?
# do something that modifies the state of done
end
或
my_object.do_something until my_object.complete
# Or, if the method were otherwise named...
my_object.do_something while my_object.incomplete