5

这是使用的代码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如果他们做同样的事情。在我看来,这就是为什么其他编程语言不能两者兼得的原因。

4

2 回答 2

16

哪个更好:

  1. makeSoup while !ingredients.empty?
  2. makeSoup until ingredients.empty?

whileuntil做同样的事情,在某些情况下阅读起来“更好”。

于 2013-05-22T21:32:59.367 回答
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
于 2013-05-22T21:28:57.770 回答