hsmwhsmw

初心者入門continue - 繰り返し処理 - PHP入門

繰り返し処理の中で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を使えば繰り返し処理の制御をより細かく行うことができます。

サンプルプログラム

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

sample4-1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;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

PHP入門の他の記事を見てみる