Break
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 41/88。
ループが自然に終了する前に、途中で抜ける必要がある場合があります。breakキーワードを使うと、ループをすぐに停止して、その後のコードに進めます。
特定の数値を探しているところを想像してください。それを見つけたら、残りを確認し続けても意味がありません。
for i in 1..10
if i == 5
puts "Found it!"
break
end
puts i
end
puts "Loop ended"これは1、2、3、4、そして「Found it!」を出力し、最後に「Loop ended」を出力します。iが5になると、breakが実行され、ループはただちに停止します。6から10までの数値は処理されません。
breakキーワードは、どの種類のループでも使えます。whileループを使った例を見てみましょう。
count = 0
while true
count += 1
if count > 3
break
end
puts count
endこれは1、2、3を出力します。条件はtrueですが(通常なら無限ループになります)、breakによってcountが3を超えるとループが停止します。
チャレンジ
簡単入力から2つの整数を読み取ります。
- 1から始まる範囲の上限を表す
limit - 検索する
targetの数値
1からlimitまでの数値をループします。各数値をそれぞれ別の行に出力します。targetに達したら、その数値の代わりにFound!を出力し、breakを使って直ちにループを終了します。
targetが範囲内にある場合、ループは早めに終了します。targetがlimitより大きい場合、1からlimitまでのすべての数値が出力されます。
たとえば、入力が10と4の場合、出力は次のようになります。
1
2
3
Found!入力が5と8の場合、出力は次のようになります。
1
2
3
4
5自分で試してみよう
# 入力を読み込む
limit = gets.to_i
target = gets.to_i
# TODO: 以下にコードを書く
# 1 から limit までの数値を順に処理する
# 各数値をそれぞれ別の行に出力する
# target に達したら、指示にあるテキストを正確に出力し、ループを抜けるこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ