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 ですが(通常なら無限ループになります)、count が 3 を超えると break がループを停止します。
チャレンジ
簡単入力から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オンラインコンパイラ