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 を使用して直ちにループを終了してください。
ターゲットが範囲内にある場合、ループは途中で終了する必要があります。ターゲットが制限(limit)より大きい場合は、1から制限までのすべての数値が出力されます。
例えば、入力が 10 と 4 の場合、出力は以下のようになります:
1
2
3
Found!入力が 5 と 8 の場合、出力は以下のようになります:
1
2
3
4
5チートシート
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キーワードは、whileループを含むあらゆる種類のループで使用できます。
count = 0
while true
count += 1
if count > 3
break
end
puts count
endこれは 1, 2, 3 と出力して停止します。条件が true であっても同様です。
自分で試してみよう
# 入力を読み込む
limit = gets.to_i
target = gets.to_i
# TODO: 以下にコードを記述してください
# 1からlimitまでの数値をループで回す
# 各数値をそれぞれの行に出力する
# targetに到達したら、"Found!"と出力してループを抜けるこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。