これからPHPの勉強を始める方を対象にしたPHP入門です。
この記事では、繰り返し処理であるwhileとdo whileの説明をします。
while文
while文は指定した条件式が真(true)の間、繰り返し実行します。
while (条件式){
実行する処理1;
実行する処理2;
}
条件式が真(TRUE)だった場合、ブロック内の処理を実行します。そして改めて条件式を評価します。真(TRUE)であれば、再度ブロック内の処理を実行し、偽(FALSE)ならばwhile文を終了します。
$num = 0;
while ($num < 2){
print "num=".$num;
print("\n");
$num += 1;
}num=0
num=1
- while文は、条件判定を事項した後に、ブロック内野処理を実行します。条件によっては、一度もブロック内野処理が実行されない可能性があります。
- 無限ループとならないように十分気をつける必要があります。
break文
繰り返し処理の中でbreakが実行されると繰り返し処理が終了させることができます。
$count = 1;
$sum = 0;
while ($count <= 20){
// $sum = $sum + $count;
$sum += $count;
if ($sum > 10){
print "10を越えたので終了します。\n";
break;
}
// $count += 1;
$count++;
}
// breakが実行された時に処理が移る位置
print 'count = '.$count;
print "\n";
print 'sum = '.$sum;10を越えたので終了します。
count = 5
sum = 15
上記では変数の値を1から20まで変化させ、合計値が10を超えた場合に、break命令を実行して、while処理を抜けます。
continue文
繰り返し処理の中でcontinueが実行されると繰り返し処理のブロック内でそれ以降の処理を実行せずに次の条件式の評価を行います。
$count = 0;
$sum = 0;
while ($count < 10){ // continueが実行された時に処理が移る位置
// $count += 1;
$count++;
// $countを2で割って余りが0の場合、偶数とする
// 偶数はcontinue命令で、whileの先頭に戻る
if ($count % 2 == 0){
continue;
}
// $sum = $sum + $count;
$sum += $count;
}
print 'sum = '.$sum;sum = 25
上記では変数の値を1から10まで変化させ、奇数の合算した結果を表示します。
このようにcontinueを使用することでより細かく繰り返し処理内の処理を制御することが可能となります。
do..while文
必ず1回はブロック内処理を実行後に、条件判定を行う場合にはdo..while文を使用します。
do{
実行する処理1;
実行する処理2;
}while (条件式);
do..while文では、まずブロック内野処理が実行された後で条件式の評価が行われます。少なくとも1回はブロック内の処理が実行されます。条件式の評価が真(TRUE)であれば再度先頭に戻りブロック内の処理を実行します。偽(FALSE)ならばdo..while文を終了します。
$num = 0;
do{
print "num=".$num . "\n";
$num += 1;
// $num++; "こちらでもOK
}while ($num < 2);num=0
num=1
- do..while文ブロック内野処理が実行された後で条件式の評価が行われます。その為、少なくとも1回は必ずブロック内の処理が実行されます。while文は、条件判定を先にするので、一度も処理が実行されない可能性があります。
- 無限ループとならないように十分気をつける必要があります。
初心者のためのPHP入門 掲載一覧
【目次】初心者向け PHP入門
第2回 PHP入門 ~変数と定数~
第3回 PHP入門 ~演算子~
第4回 PHP入門 ~条件判定(if/else/elseif/switch)~
第5回 PHP入門 ~繰り返し処理(while/do while/break/continue)~ 今ここ
第6回 PHP入門 ~繰り返し処理(for/foreach)~
第8回 PHP入門 ~文字列の長さを取得(strlen)/文字数を取得(mb_strlen)~
第9回 PHP入門 ~文字列の比較(strcmp/strcasecmp)~
第10回 PHP入門 ~文字列を取り出す(substr/mb_substr)~
第12回 PHP入門 ~ユーザ定義関数~
第13回 PHP入門 ~配列と連想配列~
プログラム学習に限界を感じていませんか?


