PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのcontinue文とは?ループ処理をスキップする使い方を実例付きで解説


はじめに

continue 文は、PHPのループ制御キーワードのひとつです。プログラムの実行フローがループ内で continue に到達すると、現在の反復(イテレーション)における残りの処理がすべてスキップされ、次の反復へと移ります。continue 文は whiledo-whileforforeach のいずれのループ構造でも使用できます。

条件分岐と組み合わせることで、「特定の条件に合致するデータだけ処理を飛ばしたい」という場面で非常に便利な制御構文です。

基本構文

while (expr)
{
    .. 
    .. 
    if (expr1)
    continue;
    .. 
    .. 
}

このように、continue 文は通常 if 文などの条件式と組み合わせて記述します。条件が真(true)と評価された場合にのみ、それ以降の処理がスキップされます。

使用例:1〜10のうち奇数だけを出力する

以下の例では、while ループのカウンター変数 $x が偶数になるたびに continue 文が実行され、echo 処理がスキップされます。その結果、1〜10 の範囲の奇数のみが出力されます。

<?php
$x=1;
while ($x<10){
    $x++;
    if ($x%2==0)
        continue;
    echo "x = $x" . "\n";
}
?>

出力結果

x = 3
x = 5
x = 7
x = 9

ネストしたループでの continue(レベル指定)

continue キーワードには、省略可能な数値引数を指定できます。この引数により、ネスト(入れ子)されたループのうち、いくつ外側のループまでスキップするかを制御できます。デフォルト値は 1 で、これは現在のループの次の反復へ進むことを意味します。

たとえば continue 2 と記述すると、内側のループだけでなく、その一つ外側のループも直ちに次の反復へ進みます。

以下の例では、二重の for ループの中で、内側のループにレベル引数を付けた continue を使用しています。

<?php
for ($i = 1;$i<=5;$i++) {
    echo "Start Of outer loop\n";
    for ($j=1;$j<=5;$j++) {
        if ($j >3) continue 2;
        echo "I : $i J : $j"."\n";
    }
    echo "End of inner loop\n";
}
?>

出力結果

Start Of outer loop
I : 1 J : 1
I : 1 J : 2
I : 1 J : 3
Start Of outer loop
I : 2 J : 1
I : 2 J : 2
I : 2 J : 3
Start Of outer loop
I : 3 J : 1
I : 3 J : 2
I : 3 J : 3
Start Of outer loop
I : 4 J : 1
I : 4 J : 2
I : 4 J : 3
Start Of outer loop
I : 5 J : 1
I : 5 J : 2
I : 5 J : 3

$j が 4 を超えた時点で continue 2 が実行されるため、内側のループの残り処理と「End of inner loop」の出力がスキップされ、外側のループが直接次の反復へ進んでいることがわかります。

補足:break 文との違い

continue とよく比較されるのが break 文です。両者の違いは以下の通りです。

  • break:ループ自体を完全に終了させる
  • continue:現在の反復だけを中断し、ループは継続する

また、break 文も continue と同様に数値引数を受け取ることができ、「break 2」とすれば二重ループを一気に抜け出すことができます。用途に応じて両者を使い分けることで、より柔軟で読みやすいループ処理を記述できるようになります。

  1. JavaScriptのbreak文・continue文・ラベル文の使い方を徹底解説

    break文とはbreak文は、ループ処理を途中で強制的に終了させるための制御構文です。実行されると、その時点でループから抜け出し、ループを囲む閉じ波括弧(})の直後にある次の処理へと制御が移ります。条件によっては、残りの反復処理を実行する必要がないケースも多くあります。そんなときbreak文は非常に便利です。以下の例では、whileループと組み合わせてbreak文を使用しています。変数xが5に達した時点でループが即座に終了し、閉じ波括弧の直後にあるdocument.write()が実行される様子を確認してみましょう。サンプルコード<html>    <b

  2. 【初心者向け】JavaScriptのcontinueステートメントの使い方を解説

    continueステートメントとはJavaScriptのcontinueステートメントは、ループ処理の中で特定の条件が満たされた場合に、その回の処理(イテレーション)をスキップし、次の反復へ処理を移すために使用されます。breakステートメントがループ自体を抜けるのに対し、continueはあくまで「その回だけ」を飛ばしてループを継続する点が特徴です。この仕組みにより、不要なデータを除外しながら効率的に繰り返し処理を行うことができます。continueステートメントの実装例以下は、1から30までの数値の中から偶数のみを出力するサンプルコードです。奇数の場合にcontinueを使って処理をスキッ