while文を使った繰り返し処理[PHP]

アイキャッチ PHP

コードを書いていると、ある条件に合致する限り同じ処理を繰り返したいときがあります。そんなときに使用するのが「while文」です。

本記事ではwhile文の基本的な使い方についてご紹介します。参考になれば幸いです。

while文の書き方

while文の書き方は以下の通りです。

while(条件式) {
  処理
}

while文では条件式が真(true)のとき、ブロック内の処理を実行します。そして再度条件式を評価し、trueならば処理を繰り返し、偽(false)ならばwhile文を抜けます。

例1
<?php
$count = 1;
while($count < 10) {
  echo $count."回";
  $count++;
}
?>
// => 1回2回3回4回5回6回7回8回9回

例1の場合、まず$countが10未満かを評価されます。$countには1が代入されているので、trueです。そのため「echo $count;」が実行され「1」と出力されます。続いて「$count++;」が実行され、$countの値に1が足されます。これで$countの値は2になりました。

そして再度条件式を評価します。これを繰り返して、$countの値が10以上になったら終了です。

break文

while文にはbreak文を使うこともできます。

break文については、以下の記事を参照。

例2
<?php
$count = 1;
while($count < 10) {
  if($count == 3) {
    break;
  }
  echo $count."回";
  $count++;
}
?>
// => 1回2回

例2の場合、$countの値が3になったらwhile文をbreak(脱出)するので、出力結果は「1回2回」となります。

continue

break文は、whileの繰り返し処理を強制終了します。では、ある周回のみをスキップしたいときはどうすれば良いでしょう。

そのような場合には「continue」を用います。

例3
<?php
$count = 0;
while($count++ < 10) {
  if($count == 3) {
    continue;
  }
  echo $count."回";
}
?>
// => 1回2回4回5回6回7回8回9回

例3を見ると、$countの値が3のときだけ処理がスキップされたことがわかります。

無限ループ

繰り返し処理において、プログラムが終了しないコードを書くと「無限ループ」になります。

例4
<?php
$count = 1;
while($count < 10) {
  echo $count."回";
}
?>
// => 1回1回1回1回1回1回1回1回1回1回1回……

例4では、$countの増減式(例えば$count++;)が記述されていないので、$countの値は1のままです。これではいつまでたっても10以上にならないため、処理が半永久的に繰り返されます。これが「無限ループ」です。

無限ループはマシンに多大な負荷をかけ、クラッシュする原因になります。while文に限らず、繰り返し処理を記述する際は注意してください。

まとめ

while文の特徴は以下の通りです。

  • 条件式がfalseになるまで処理を繰り返す
  • breakで処理を抜ける
  • continueでスキップ
  • 無限ループに注意

あなたの毎日がハッピーでありますように。

コメント

  1. […] while文を使った繰り返し処理[PHP]コードを書いていると、ある条件に合致する限り同じ処理を繰り返したいときがあります。そんなときに使用するのが「while文」です。本記事ではwhile文 […]

タイトルとURLをコピーしました