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 が決してチェックされないことに注意してください。ループが 9 に遭遇した瞬間、break がループを完全に終了し、実行が "Search complete" にジャンプします。
break 文は、すべてのループタイプ — for、while、foreach — で動作します。何かを検索しているときや、特定の条件でループを即座に停止すべきときに特に便利です。
チャレンジ
簡単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チートシート
break 文はループを即座に終了し、ループ後のコードの実行を続けます。for、while、および foreach ループで使用できます。
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 completebreak が実行されると、ループは即座に停止し、残りの要素は処理されません。
自分で試してみよう
<?php
// 入力を読み込む
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));
// TODO: 以下にコードを記述してください
// キー・値構文のforeachループを使用してターゲットを探す
// 見つかったら「Found [target] at index [index]!」を出力してbreakする
// ループ後に見つからなければ「[target] not found」を出力する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators