カテゴリー
未分類

Rubyのループを制御するbreak, next, redo

ループの中で条件に一致する時、そのループを再度やり直したい場合はredoを使う。例では合計が6になった時、ループをやり直しているためloop 3が2回出力されている。

sum = 0
for i in 1..5
puts "loop #{i} => #{sum += i}"
if sum == 6
redo
end
end
# loop 1 => 1
# loop 2 => 3
# loop 3 => 6
# loop 3 => 9
# loop 4 => 13
# loop 5 => 18

ループで条件に一致する時、それ以降の処理をスキップしたい時nextを使う。例ではloop 3の計算は実行し、それ以降の結果出力をスキップしている。

sum = 0
for i in 1..5
sum += i
if sum == 6
next
end
puts "loop #{i} => #{sum}"
end
# loop 1 => 1
# loop 2 => 3
# loop 4 => 10
# loop 5 => 15

ループで条件に一致する時ループを抜けたい時はbreakを使う。例では合計値が目的値以上になると終了しているため、loop 5は実行されていない。

sum = 0
for i in 1..5
puts "loop #{i} => #{sum += i}"
if sum > 6
break
end
end
# loop 1 => 1
# loop 2 => 3
# loop 3 => 6

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA