continue

広告

繰り返し処理の中でcontinueが実行されると繰り返し処理のブロック内でそれ以降の処理を実行せずに次の条件式の評価を行います。

continue;

例えば次のように使います。

$count = 0;
$sum = 0;

while ($count < 100){    // continueが実行された時に処理が移る位置
  $count += 1;

  if ($count % 2 == 0){
    continue;
  }

  $sum += $count;
}
print 'sum = '.$sum;

上記では変数の値を1から100まで変化させ合算した結果を表示するものです。while文のブロックの中で、加算しようとする値が2の倍数であった場合には合算を行わずに次の条件式の評価へ処理が移ります。

このようにcontinueを使用することでより細かく繰り返し処理内の処理を制御することが可能となります。

またbreakと同じくいくつの階層を飛ばして条件式の評価に戻るのかを指定することができます。

continue 階層数;

階層の数を指定します。

次の例を見てください。

$count1 = 0;
$sum = 0;

while ($count1 < 10){    // continueが実行された時に処理が移る位置
  $count1 += 1;

  $count2 = 0;

  while ($count2 < 10){
    $count2 += 1;
    if ($count1 * $count2 > 30){
      continue 2;
    }

    $sum += $count1 * $count2;
  }
}
print 'sum = '.$sum;

今回の例ではcontinueが実行された時に2階層分の繰り返し処理の残りの処理を飛ばし外側の条件式の評価に処理が移ります。

breakと同様にcontinueを使えば繰り返し処理の制御をより細かく行うことができます。

サンプルコード

では簡単なプログラムで試して見ます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

<p>PHPのテストです。</p>

<p>
<?php
$count1 = 0;
$sum = 0;

while ($count1 < 10){    // continueが実行された時に処理が移る位置
  $count1 += 1;

  $count2 = 0;
  while ($count2 < 10){
    $count2 += 1;
    if ($count1 * $count2 > 30){
      continue 2;
    }

    $sum += $count1 * $count2;
  }
}
print 'sum = '.$sum;
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

continue

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。