5. 制御構造
if ( 文A ) {
文B1
文B2
} else {
文C1
文C2
}
という形に書けます。
if ( 文A ) 文B
という書き方もできます。
if ( 文A ) {
文B
} else if ( 文C ) {
文D
} else {
文E
}
この場合、文Aが真なら文Bを実行し、
文Aが偽で文Cが真なら文Dを実行、
どちらも偽の場合は文Eを実行します。
while ( 文A ) {
文B
文C
}
と書けます。
こう書くと文Aが真である間、ブロックの中にある
文B、Cをくりかえし実行します。
for ブロックは繰り返し回数が決まっている時などによく用います。
for ( 文1; 文2; 文3 ) {
文A
文B
}
for ブロックに入る前に、pointer はまず文1を実行します。
次に文2が真であるかどうかを調べて、
真であればブロックの中身を実行します。
そして一回ブロックを実行するごとに文3を実行し、
ふたたび文2のチェックをして真ならブロックを繰り返します。
実際には
for ( $i=1; $i<=10; $i++ ) {
echo $i;
}
などのように使います。
この時、$i=1 からはじめて 10 まで 1 づつ増やしながら、
毎回 $i の値を(echo コマンドで)出力します。
while や for などのブロックは、
break コマンドを使えばループの途中でも抜け出すことができます。
たとえば、
while ( 1 ) {
echo "text aaa.";
echo "text bbb.";
break;
echo "text ccc.";
}
とすると break の行でループを抜けてしまうので、
画面には
また、continue コマンドを使った場合、
ループの残りの部分を飛ばしてループを繰り返します。
for ( $i=1; $i<=5; $i++ ) {
echo "***";
if ( $i==4 ) continue;
echo $i;
}
というプログラムがあった時に、
と表示されます。 なぜかというと、 $i が 4 の時は continue 文が実行されて 次の echo $i の行が飛ばされ、 すぐに $i=5 のループになってしまうからです。*** 1 *** 2 *** 3 *** *** 5