continue - 繰り返し処理を飛ばす(スキップ)
当ページのリンクには広告が含まれています。
ここではPHPスクリプトで continue を使って繰り返し処理(ループ処理)を飛ばす(スキップする)方法について解説します。
continue とは、for や while などの繰り返し処理を飛ばして、スキップする制御構文です。多重ループの場合は繰り返し処理を飛ばす階層数を指定することもできます。
continue - 繰り返し処理を飛ばす
繰り返し処理を終了させたい場合にはPHPスクリプトの繰り返し処理内で以下のように記述します。
continue;
continue - 繰り返し処理を飛ばす階層数を指定
continueは、多重ループ処理の繰り返し処理を抜ける階層数を指定することもできます。繰り返し処理を抜ける階層数を指定する場合は「continue」の後に「階層数」を記述します。
continue 階層数;
※ ちなみに階層数を指定しない「continue;」は「continue 1;」と同義になります。
それでは continue のサンプルスクリプトをみてみましょう。
サンプルスクリプト
変数「$i」が10より小さい場合は繰り返し処理を行うループ内で、「$i」が「4」であれば、ループをスキップするサンプルスクリプトです。
<?php for( $i=0;$i<10;$i++ ) { if( $i===4 ){ echo "ループをスキップ\n"; continue; } echo $i ."\n"; } ?>
実行結果です。
0 1 2 3 ループをスキップ 5 6 7 8 9
このように「$i」が「4」のときに繰り返し処理をスキップしていることがわかります。
サンプルスクリプト - 繰り返し処理を飛ばす階層数を指定
それでは階層数を指定した break のサンプルスクリプトをみてみましょう。
変数「$i」「$j」という2つのループ処理のスクリプトです。「$i」の値が「3」になったら2階層(「$i」と「$j」の両方)のループを抜けるという動きになります。
<?php for( $i=0;$i<5;$i++ ){ for( $j=0;$j<5;$j++ ){ if( $i===3 ){ echo "ループをスキップ\n"; continue 2; } echo $i . $j . "\n"; } } ?>
実行結果です。
00 01 02 03 04 10 11 12 13 14 20 21 22 23 24 ループをスキップ 40 41 42 43 44
「$i」が「3」になったら2重ループを抜けていることがわかります。
次は「if、else、elseif - 条件分岐」をみてみましょう。