循环语句
while
语法
while conditional [do]
code
end
例子
$i = 0
$num = 5
while $i < $num do
puts("在循环语句中 i = #$i" )
$i +=1
end
输出
在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
语法
code while condition
或者
begin
code
end while conditional
until
语法
- 条件位假的时候执行语句
until conditional [do]
code
end
语法2
code until conditional
或者
begin
code
end until conditional
for
语法
for variable [, variable ...] in expression [do]
code
end
- 例子
for i in 0..5
puts "局部变量的值为 #{i}"
end
输出
局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5
each
语法
(expression).each do |variable[, variable...]| code end
- 例子
(0..5).each do |i|
puts "局部变量的值为 #{i}"
end
break 语句
终止循环
next 语句
终止本次循环,执行下一次循环
redo 语句
重新开始本次循环,不用检查循环条件
重新开始最内部循环的该次迭代,不检查循环条件。如果在块内调用,则重新开始 yield 或 call
for i in 0..5
if i < 2 then
puts "局部变量的值为 #{i}"
redo
end
end
输出: 无线循环的
局部变量的值为 0
retry 语句
如果 retry
出现在 begin
表达式的 rescue
子句中,则从 begin
主体的开头重新开始
。
begin
do_something # 抛出的异常
rescue
# 处理错误
retry # 重新从 begin 开始
end
如果 retry 出现在迭代内、块内或者 for 表达式的主体内,则重新开始迭代调用。迭代的参数会重新评估。
for i in 1..5
retry if some_condition # 重新从 i == 1 开始
end