while文
while文は指定した条件式が真(true)のうちは、ブロック内の処理を繰り返し実行します。
while (条件式){
実行する処理1;
実行する処理2;
}
実行される処理が1つだけの場合はブロックを省略しても構いません。
while (条件式)
実行する処理;
条件式は比較演算子などを使います。
条件式が真(TRUE)であれば再度ブロック内の処理を実行し、偽(FALSE)になったならばブロック内の処理を実行せずにwhile文を終了します。
例えば、以下のように記述した場合、ブロック内の処理を10回実行します。
$i = 0;
while ($i < 10){
print $i.'<br>';
$i += 1;
}
while文は条件式が偽(FALSE)にならない限り、繰り返しブロック内の処理を繰り返します。
そのため、ブロック内で条件式を変化させて繰り返しを終了させる処理を記述する必要があります。
そうしなければ、ブロック内の処理を無限に繰り返す「無限ループ」という現象が起きてしまいます。
例えば、以下のように記述した場合、条件式が偽(FALSE)なることは永遠にないので、ブロック内の処理を無限に繰り返すことになります。
$i = 0;
while (i < 10){
print $i.'<br>';
}
while文は「条件を優先的に繰り返す」ときに有効な構文ですが、無限ループとならないように気を付けましょう。
do-while文
while文は条件式にあてはまる限りブロック内の処理を行いますが、条件式の評価によっては1回もブロック内の処理が実行されないこともあります。
つまり、最初から条件があてはまらない場合は、ブロック内の処理は無視されるということです。
もし、必ず1回は処理を実行させたいといはdo-while文を使います。
do{
実行する処理1;
実行する処理2;
}while(条件式);
do-while文では、必ず1回はブロック内の処理が実行されます。
処理を実行した後、条件式の評価が真(TRUE)であればブロック内の処理を実行し、偽(FALSE)ならば繰り返し処理を終了します。
実行される処理が1つだけの場合はブロックを省略して構いません。
do
実行する処理;
while(条件式);
for文
for文は変数の値を指定したとおりに変化させていき、条件式で評価する偽(FALSE)になるまで繰り返します。
for文では初期化式、条件式、変化式の3つを記述します。
for (初期化式; 条件式; 変化式){
実行する処理1;
実行する処理2;
}
初期化式はfor文の処理が開始されるときに1回だけ実行されます。
2回目以降は、変化式によって変数の値が変わり、条件式で評価されます。
例えば、ブロック内の処理を10回繰り返す場合には以下のように記述します。
for($i = 0; $i < 10; $i++){
print $i.'<br>';
}
実は、for文ではなくてwhile文を使っても同じ処理を実行することも可能です。
$i = 0;
while (i < 10){
print $i.'<br>';
$i += 1;
}
ですが、変数に同じ変化を加えたいときはfor文を使ったほうが簡潔です。
実行される処理が1つだけの場合はブロックを省略しても構いません。
for(初期化式; 条件式; 変化式)
実行する処理;
foreach文
foreach文は配列に含まれるすべての要素を順に取り出し処理したいときに使います。
詳しくは、配列を学習するときに教えます。
foreach (配列変数 as 変数){
実行する処理1;
実行する処理2;
}
break
繰り返し処理を終了させる方法として、breakを使うやり方もあります。
break;
例えば、以下のように記述した場合、ブロック内の処理を10回実行しますが、変数が9のときだけ後の処理を実行せずに繰り返し処理を終了します。
$i = 0;
while ($i < 10){
while ($i == 9){
break;
}
print $i.'<br>';
$i += 1;
}
入れ子(ネスト)
繰り返し処理の中で、さらに繰り返し処理をさせることができます。
このことを「繰り返し処理の入れ子(ネスト)」といいます。
例えば、for文を入れ子にした場合は、以下のように記述します。
for ($i = 0; $i < 2; $i++){
for($j = 0; $j < 2; $j++){
print $i * $j.'<br>';
}
}
コピーできました!