menu
ホーム > PHPの文法 > 6 制御文 > PHP break 文 現在実行しているループ処理を抜ける
PHPリファレンス

UPDATE:2018年11月06日

PHP break 文 現在実行しているループ処理を抜ける

PHP break 文 現在実行しているループ処理を抜ける | wepicks!
PHP4 PHP5 PHP7

1 Minute Note

  • break文 は現在実行しているfor文、foreach文、while文、do-while文、switch文の処理を終了して制御構造から抜ける
    break;
    
  • break文引数ループ構造を抜けるレベルを指定できる
    break 2;
    
  • break文switch文 をループ構造と判断する


break文とは

POINT

  • break文 は現在実行している処理を終了して制御構造から抜ける
    break;
    
  • break文引数ループ構造を抜けるレベルを指定できる
    break 2;
    
  • break文switch文 をループ構造と判断する

break文は現在実行している処理を終了して制御構造から抜けます。「for文」「foreach文」「while文」「do~while文」「switch文」で使用できます。

以下の例では、「if($i === 5)」の場合に「break;」が実行され、其の時点で処理が終了し、while文の制御構造から抜けています。本来は、数値の 1 から 10 までをechoで出力するループ処理ですが、1~4までしか出力されません。

結果は

1
2
3
4

となります。

break文は、オプションで引数を指定することができ、ループ構造を抜けるレベルの数を指定できます。for文やwhile文等でそれらが入れ子(ネスト)になっている場合は、ループ構造が階層化されているので、何階層のループ構造を抜けるかレベルを指定できます。何も指定しない状態は「break 1;」と同意です。これは、現在のループ(反復)処理を終了させます。

以下の例では、for文によるループ処理を記述していますが、for文の中にfor文を記述した入れ子(ネスト)構造になっています。出力内容は10の位から90の位までの数値を並べて表示するものですが、50の位までで処理を終了しています。これは、「if($i === 50 && $ii === 9)」の場合に、「break 2;」 が実行され、ループ構造を2つ抜けているためです。そのため、現在のループの最初である、「for($ii = 0; $ii <= 9; $ii++)」の更に上の階層である、「for($i = 10; $i <= 90; $i+=10)」までのループ構造を抜けて処理を終了します。

結果は

10の位 ( 10 11 12 13 14 15 16 17 18 19 )
20の位 ( 20 21 22 23 24 25 26 27 28 29 )
30の位 ( 30 31 32 33 34 35 36 37 38 39 )
40の位 ( 40 41 42 43 44 45 46 47 48 49 )
50の位 ( 50 51 52 53 54 55 56 57 58 59 )

となります。

※バージョン:5.4.0 からbreak 0; が使えなくなりました。今までのバージョンでは、これは break 1; と同じ意味に解釈されていました。
※バージョン:5.4.0 から数値引数の部分に変数を渡すこと (例: $num = 2; break $num;) ができなくなりました。


使用例

 

for文でbreak文

結果は

1
2
3
4

となります。

while文でbreak文

結果は

1
2
3
4

となります。

do~while文でbreak文

結果は

1
2
3
4

となります。

foreach文でbreak文

結果は

1
2
3
4

となります。

switch文でbreak文

結果は

名前はSatoです。

となります。

while文入れ子(ネスト)でbreak文

結果は

1 ( 1-1 1-2 1-3 )
2 ( 2-1 2-2 2-3 )
3 ( 3-1 3-2 3-3 )
4 ( 4-1 4-2 4-3 )
5 ( 5-1 5-2 5-3 )

となります。

for文入れ子(ネスト)でbreak文

結果は

10の位 ( 10 11 12 13 14 15 16 17 18 19 )
20の位 ( 20 21 22 23 24 25 26 27 28 29 )
30の位 ( 30 31 32 33 34 35 36 37 38 39 )
40の位 ( 40 41 42 43 44 45 46 47 48 49 )
50の位 ( 50 51 52 53 54 55 56 57 58 59 )
10の位 ( 10 11 12 13 14 15 16 17 18 19 )
20の位 ( 20 21 22 23 24 25 26 27 28 29 )
30の位 ( 30 31 32 33 34 35 36 37 38 39 )
40の位 ( 40 41 42 43 44 45 46 47 48 49 )
50の位 ( 50 51 52 53 54 55 56 57 58 59 )

となります。


サンプルコード

– サンプル Click Here ! –

実行結果
for文でbreak文
1
2
3
4

while文でbreak文
1
2
3
4

do~while文でbreak文
1
2
3
4

foreach文でbreak文
1
2
3
4

switch文でbreak文
名前はSatoです。

while文入れ子(ネスト)でbreak文
1 ( 1-1 1-2 1-3 )
2 ( 2-1 2-2 2-3 )
3 ( 3-1 3-2 3-3 )
4 ( 4-1 4-2 4-3 )
5 ( 5-1 5-2 5-3 )

for文入れ子(ネスト)でbreak文
10の位 ( 10 11 12 13 14 15 16 17 18 19 )
20の位 ( 20 21 22 23 24 25 26 27 28 29 )
30の位 ( 30 31 32 33 34 35 36 37 38 39 )
40の位 ( 40 41 42 43 44 45 46 47 48 49 )
50の位 ( 50 51 52 53 54 55 56 57 58 59 )
10の位 ( 10 11 12 13 14 15 16 17 18 19 )
20の位 ( 20 21 22 23 24 25 26 27 28 29 )
30の位 ( 30 31 32 33 34 35 36 37 38 39 )
40の位 ( 40 41 42 43 44 45 46 47 48 49 )
50の位 ( 50 51 52 53 54 55 56 57 58 59 )

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

公開日:2011年11月6日
最終更新日:2018年11月06日

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpref-structures_break/trackback/

page top