1. ifexpress
1.1 格式:ruby
if conditional [then] code... [elsif conditional [then] code...]... [else code...] end
if 表达式用于条件执行。值 false 和 nil 为假,其余值都为真。请注意,Ruby 使用 elsif,不是使用 else if 和 elif。less
若是 conditional 为真,则执行 code。若是 conditional 不为真,则执行 else 子句中指定的 code。code
一般咱们省略保留字 then 。若想在一行内写出完整的 if 式,则必须以 then 隔开条件式和程式区块。it
1.2 if修饰符io
格式class
code if condition
if修饰词组表示当 if 右边之条件成立时才执行 if 左边的式子。即若是 conditional 为真,则执行 code。循环
1.3 unless语句yield
格式:语法
unless conditional [then] code else code end
unless式和 if式做用相反,即若是 conditional 为假,则执行 code。若是 conditional 为真,则执行 else 子句中指定的 code。
1.4 unless修饰符
code unless conditional
若是 conditional 为假,则执行 code。
1.5 case语句
case expression [when expression [, expression ...] [then] code ]... [else code ] end
case先对一个 expression 进行匹配判断,而后根据匹配结果进行分支选择。
它使用 ===运算符比较 when 指定的 expression,若一致的话就执行 when 部分的内容。
一般咱们省略保留字 then 。若想在一行内写出完整的 when 式,则必须以 then 隔开条件式和程式区块。
2.循环
2.1 while do
while conditional [do] #或者[:] code end
当 conditional 为真时,执行 code。
语法中 do 或 : 能够省略不写。但若要在一行内写出 while 式,则必须以 do 或 : 隔开条件式或程式区块。
2.2 while修饰符 至关于 do while
code while condition 或者 begin code end while conditional
当 conditional 为真时,执行 code。
若是 while 修饰符跟在一个没有 rescue 或 ensure 子句的 begin 语句后面,code 会在 conditional 判断以前执行一次。
2.3 until 语句
until conditional [do] code end
当 conditional 为假时,执行 code。
语法中 do 能够省略不写。但若要在一行内写出 until 式,则必须以 do 隔开条件式或程式区块。
2.4 until修饰循环
code until conditional 或者 begin code end until conditional
当 conditional 为 false 时,执行 code。
若是 until 修饰符跟在一个没有 rescue 或 ensure 子句的 begin 语句后面,code 会在 conditional 判断以前执行一次。
3. for 语句
for variable [, variable ...] in expression [do] code end
for...in 循环几乎是彻底等价于:
(expression).each do |variable[, variable...]| code end
4.break 终止最内部的循环。若是在块内调用,则终止相关块的方法(方法返回 nil)。
5. next 相似于c的continue
6.redo 从新开始最内部循环的该次迭代,不检查循环条件。若是在块内调用,则从新开始 yield 或 call。
7. retry(1.9以后不支持)
若是 retry 出如今 begin 表达式的 rescue 子句中,则从 begin 主体的开头从新开始。
若是 retry 出如今迭代内、块内或者 for 表达式的主体内,则从新开始迭代调用。迭代的参数会从新评估。