【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

PHPで繰り返し処理(ループ)の中断・スキップする方法

本記事では、繰り返し処理(ループ文)の中断・スキップをする方法について解説しています。

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/05/21 10:58時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

繰り返し処理の中断

繰り返し処理を中断をするには、中断したいポイントにbreak;を記述します。

下記のサンプルコードでbreak;の挙動を確認してみましょう。

<?php 
$num_arr = [100,200,300,400,500];
$total = 0;
foreach($num_arr as $num) {
    $total += $num;
    if($total > 700) {
        break;
    }
}
print_r($total); // -> 1000
?>

配列$num_arrの中には100〜500までの数値が100間隔で代入されています。これをforeach文でループさせ配列の中に代入されている数値を順に合算し変数$totalに結果を保存します。

配列$num_arrの中にある数値を全て合算すると合計値は1,500になりますが、処理が終了して変数$totalの値を確認すると1,000です。この理由はif文で変数$totalの値が700を超えたタイミングで処理を中断させるbreak;を設定していたからです。

これにより、100〜400までを合算した時に変数$totalの値が700を超えたため処理が中断され、最後の500が合算されずに処理が終了しました。

繰り返し処理のスキップ

繰り返し処理をスキップをするには、スキップしたいポイントにcontinue;を記述します。

下記のサンプルコードでcontinue;の挙動を確認してみましょう。

<?php 
for($i = 1; $i <= 20; $i++){
    if($i % 4 === 0){
        continue;
    }
    print("${i}、"); // -> 1、2、3、5、6、7、9、10、11、13、14、15、17、18、19、
}
?>

上記のサンプルコードは、for文を使って20回繰り返し処理をさせています。for文の中で初期値の変数$iが4の倍数の時だけ、繰り返し処理をスキップするcontinue;を設定しています。

print()で1ループずつ変数$iの数値を出力しているので、確認してみると(4,8,12,16,20)が出力されていないことが分かります。これは4の倍数時にcontinue;が実行され後続処理のprint()がスキップされfor文の最初に戻っていることになります。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次