是否有必要在条件后使用`do`?

Is it necessary to use `do` after condition?

'do' 对于 while 循环是可选的。

您可以使用:

begin
  # do something
end until quit == true

用于 'do...while' 循环。

甚至

code while condition
code until condition

语法有效

I saw some examples without the do after the condition. I was wondering if it is necessary.

while 循环需要一些东西来告诉 Ruby 条件何时结束,循环体何时开始。这可以是以下三种情况之一:

  • 关键词do:

    while condition do expression end
    
  • 两个表达式分隔符之一,分号:

    while condition; expression end
    
  • 或换行符:

    while condition
      expression
    end
    

while 循环还有另一种尾随修饰符形式,类似于 if 的尾随修饰符形式。当循环体只有一个表达式时,也可以这样写:

expression while condition

请注意,您始终可以通过用括号将一系列表达式组合成一个表达式:

(expression1; expression2; expression3) while condition