Menu
Coddy logo textTech

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 complete

5 と 1 は決してチェックされないことに注意してください。loop が 9 に遭遇した瞬間、break によって loop を完全に抜け、実行は「Search complete」へ移ります。

break文は、forwhileforeachのすべてのloop型で使用できます。何かを検索しているときや、特定の条件によってloopを直ちに停止すべき場合に特に便利です。

challenge icon

チャレンジ

簡単

入力を2行読み取ります。

  1. カンマ区切りの数値リスト(例:4,8,15,16,23,42
  2. 検索する対象の数値

foreach ループを使って、配列内から対象の数値を検索します。見つかったら、Found [target] at index [index]! を出力し、break を使って直ちにループを終了します。

対象が見つからないままループが完了した場合は、[target] not found を出力します。

ヒント: インデックスを追跡するには、foreach ループでキーと値の構文を使います。

例1:

入力が 10,25,30,45,5030 の場合、出力は次のようになります。

Found 30 at index 2!

例2:

入力が 5,10,15,20,2520 の場合、出力は次のようになります。

Found 20 at index 3!

例3:

入力が 1,2,3,4,599 の場合、出力は次のようになります。

99 not found

自分で試してみよう

<?php
// 入力を読み取る
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));

// TODO: 以下にコードを書いてください
// キーと値の構文を使ったforeachループでターゲットを検索する
// 見つかったら、"Found [target] at index [index]!" と出力してbreakする
// ループの後に見つからなかった場合、"[target] not found" と出力する

?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: PHPオンラインコンパイラ