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

时间:2015-01-10 20:29:43

标签: ruby block

  • 这是while循环的官方语法:

    while condition [do]
       code
    end
    

    但是在条件之后我看到了一些没有do的例子。我想知道是否有必要。

  • 是否有一个等同于Java do...while循环的循环?如果是的话,请告诉我

3 个答案:

答案 0 :(得分:4)

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

您可以使用:

begin
  # do something
end until quit == true

对于'做...而'循环。

答案 1 :(得分:1)

即使

code while condition
code until condition

是有效的语法

答案 2 :(得分:1)

  

我看到了一些没有条件的例子。我想知道是否有必要。

当条件结束并且循环体开始时,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