Break文
CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 51/71。
ループが自然に終了する前に、早くループを終了する必要がある場合があります。break文を使うと、まさにそれができます。ループをすぐに停止し、その後にあるコードの実行を続けます。
配列から特定の値を検索すると想像してください。見つけたら、残りの要素を確認しても意味がありません。breakを使うと、不要な反復を省けます。
<?php
$numbers = [3, 7, 2, 9, 5, 1];
foreach ($numbers as $num) {
if ($num === 9) {
echo "Found 9!\n";
break;
}
echo "Checking $num\n";
}
echo "Search complete";
?>これは次のように出力されます:
Checking 3
Checking 7
Checking 2
Found 9!
Search complete5 と 1 は決してチェックされないことに注意してください。loop が 9 に遭遇した瞬間、break によって loop を完全に抜け、実行は「Search complete」へ移ります。
break文は、for、while、foreachのすべてのloop型で使用できます。何かを検索しているときや、特定の条件によってloopを直ちに停止すべき場合に特に便利です。
チャレンジ
簡単入力を2行読み取ります。
- カンマ区切りの数値リスト(例:
4,8,15,16,23,42) - 検索する対象の数値
foreach ループを使って、配列内から対象の数値を検索します。見つかったら、Found [target] at index [index]! を出力し、break を使って直ちにループを終了します。
対象が見つからないままループが完了した場合は、[target] not found を出力します。
ヒント: インデックスを追跡するには、foreach ループでキーと値の構文を使います。
例1:
入力が 10,25,30,45,50 と 30 の場合、出力は次のようになります。
Found 30 at index 2!例2:
入力が 5,10,15,20,25 と 20 の場合、出力は次のようになります。
Found 20 at index 3!例3:
入力が 1,2,3,4,5 と 99 の場合、出力は次のようになります。
99 not found自分で試してみよう
<?php
// 入力を読み取る
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));
// TODO: 以下にコードを書いてください
// キーと値の構文を使ったforeachループでターゲットを検索する
// 見つかったら、"Found [target] at index [index]!" と出力してbreakする
// ループの後に見つからなかった場合、"[target] not found" と出力する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ