while構文
繰り返す条件を作るための初期化処理
while (繰り返す条件){
繰り返したい処理
更新処理
}
↓↓↓↓↓
$i = 1;
while ($i <= 365){
print $i . PHP_EOL;
$i = $i + 1;
}
- 一番重要なところは「繰り返す条件」
($i <= 365)
- ◯◯が△△になったら繰り返してください、◯◯が△△ではなくなったら繰り返しをやめてください、といった条件を記述する
- 上記の場合は『$iという変数の内容が365以下の間繰り返す』と言った条件になっている
-
$i
は最初どういう状態なのか?- 「初期化処理」
$i = 1;
の部分で行われる -
$i = 1
として数字の1を代入しているので、最初の$i
の状態は 1 であることがわかる- while構文の条件である『$iが365以下』に該当するので、while構文の中括弧に入って「繰り返したい処理」が行われる
- while構文は「繰り返したい処理」が終わると、元の部分に戻るという性格がある
-
$i
が365以下の場合は、画面に数字が表示された後、またwhile構文に戻ってくる - ここで更新処理を書かないと、
$i
には1が代入されたままとなり無限ループとなってしまう。
- 「初期化処理」
- 更新処理
- 繰り返す条件に使っている変数などは、最終的に条件から外れるような計算などを行う必要がある
- 「更新処理」
$i = $i + 1;
-
$i
に$i+1
を代入する。
-
- 1 を画面に表示した後、
$i
には1+1である 2 が代入される - またwhile構文の最初に戻るので
$i
が365以下であることは変わらないが、$i
の内容自体は変わっている。(1が2になっている) - 2 が画面に表示された後、
$i
は2+1である 3 が代入される- 3が画面に表示されて4・・・5・・・6と1ずつ増えていく
- 364が画面に表示された後、365になった
$i
のままwhile構文に戻る。- 条件は「365以下」なので365も含まれる
- 画面には365と表示され、
$i
が366になった後while構文に戻るが、この時点で条件から外れる。 - 画面には365が表示されて処理が終わる。(条件から外れたので)
※参考:Udemy/Webサーバーサイドプログラミング入門