Ruby 循环
-
循环
Ruby中的循环用于执行相同的代码块指定的次数。本章详细介绍了Ruby支持的所有循环语句。 -
while 循环
语法while conditional [do] code end
当conditional为true时执行代码。while循环的条件通过保留字do、换行符、反斜杠\或分号;与代码分隔。示例:
尝试一下$i = 0 $num = 5 while $i < $num do puts("在循环内 i = #$i" ) $i +=1 end
-
while 修饰符
语法code while condition 或者 begin code end while conditional
condition是true,执行代码。 如果一个while修饰符跟在一个begin,end语句后面,那么代码将在条件运算之前执行一次。示例:
尝试一下$i = 0 $num = 5 begin puts("循环内部 i = #$i" ) $i +=1 end while $i < $num
-
until 声明
语法until conditional [do] code end
当conditional为假时执行代码。until语句的条件与代码通过保留字do、换行符或分号分隔。示例:
尝试一下$i = 0 $num = 5 until $i > $num do puts("循环内部 i = #$i" ) $i +=1; end
-
until 修饰符
语法code until conditional 或者 begin code end until conditional
当条件为假时执行代码。如果until修饰符跟在begin - end语句后面,则在条件运算之前执行一次代码。示例:
尝试一下$i = 0 $num = 5 begin puts("循环内部 i = #$i" ) $i +=1; end until $i > $num
-
for 声明
语法for variable [, variable ...] in expression [do] code end
为expression中的每个元素执行一次代码。示例:
尝试一下for i in 0..5 puts "局部变量的值为 #{i}" end
for...循环几乎完全等同于以下内容-(expression).each do |variable[, variable...]| code end
不过for循环不会为局部变量创建新的作用域。for循环的表达式通过保留字do、换行符或分号与代码分隔。
尝试一下(0..5).each do |i| puts "局部变量的值是 #{i}" end
-
break 声明
语法break
终止最多的内部循环。如果在块中调用一个相关的块(方法返回nil)终止一个方法。示例:
尝试一下for i in 0..5 if i > 2 then break end puts "局部变量的值是: #{i}" end
-
next 语句
语法next
跳转到最内部循环的下一个迭代。如果在块内调用(跟yield或调用返回nil),则终止该块的执行。
尝试一下for i in 0..5 if i < 2 then next end puts "局部变量的值是: #{i}" end
-
redo 声明
语法redo
重新启动最内部循环的此迭代,而无需检查循环条件。重新启动yield或在块内调用时调用。for i in 0..5 if i < 2 then puts "局部变量的值是: #{i}" redo end end
这将产生以下结果,并将进入无限循环-局部变量的值是: 0 局部变量的值是: 0 ............................
-
retry 语句
语法retry
如果retry出现在begin表达式的rescue子句中,请从begin主体的开头重新启动。begin do_something # exception raised rescue # handles error retry # restart from beginning end
如果retry出现在迭代器,块或for表达式的主体中,则重新启动迭代器调用。重新计算迭代器的参数。for i in 1..5 retry if some_condition # restart from i == 1 end
示例:for i in 0..5 retry if i > 2 puts "局部变量的值是 #{i}" end
这将产生以下结果,并将进入无限循环-局部变量的值是 1 局部变量的值是 2 局部变量的值是 1 局部变量的值是 2 局部变量的值是 1 局部变量的值是 2 ............................