PHP講座 第5回 -繰り返し処理-

こんにちは。
第5回目の今回は繰り返し処理です。
めんどくさい反復処理が簡単に実装できるのもプログラムの良いところですね。

それでは行きましょう。

While文

Whileは条件式がTRUE(条件式に合致)の間{ }内の処理が実行され続けます。
条件式の判定はループの開始時と{ }内の処理が終わるごとに行なわれます。
条件式にあてはまらない場合はループ処理は行なわれません。
構文は以下のようになります。

while(条件式){
	//ここが反復処理
}

→公式マニュアル:while

例えば、$iが10以下の場合に繰り返す場合

<?php
$i = 0;
while($i < 10){
	echo $i ."<br />";
	//$iに1を加算する。
	$i++;
}
?>
while実行結果

while実行結果

このようにwhileを使うことにより簡単に反復処理を行なうことが出来ます。

Do-While文

do-whileは基本的にはwhileと同じ動作をします。
ただ、条件の判定が処理の最初ではなく、最後で行なわれます。
これにより、処理が必ず1度は行なわれることになります。

<?php
$i = 0;
do {
	echo $i;
} while ($i > 0);
?>

→公式マニュアル:do-while

これはwhileの場合と違う挙動を示します。
do-whileではwhile(条件式)にあてはまらない場合でも1度処理が行なわれます。

For文

forは変数が条件に適合する間{ }内の処理が実行され続けます。
構文は少し複雑に見えますが、それほどわかりにくいものでもありません。

<?php
for(初期値設定; 条件式; 変化式){
	//ここが反復処理
}
?>

→公式マニュアル:for

これは、例えば$iが0から始まって9になるまで数字の出力処理を行ないたい場合、以下のようになる。

<?php
//$iの初期値は0 $iが10以下の場合に{}内を実行
//$i++は$iに1を足すという意味
for($i = 0; $i < 10; $i++){
	//ここが反復処理
	echo $i ."<br />";
	//※処理は10回行なわれる。
}
//処理が一回終わると$i++($iに+1)され、条件式判定に戻る。
?>
for実行結果

for実行結果

流れはこうなります。

  • 1.$iに0がセットされる。
  • 2.条件式($i < 10)判定が行なわれ、TRUE(条件に合致)の場合{}内の処理が1回行なわれる。
  • 3.一番上まで戻り、変化式($i++)が実行される($iに1加算)
  • 4.[2.]の処理を行なう。
  • 5.条件式($i < 10)判定であてはまらなくなった場合、処理が終了

こんな感じです。

break continue

ある条件の時にだけ繰り返し処理を抜けたいこともあるかもしれません。
その場合はbreak;を使います。
例えば、先ほどの例で$iが5の時に処理を抜けたいとします。

<?php
for($i = 0; $i < 10; $i++){
	echo $i ."<br />";
	if($i == 5){
		break;
	}
}
?>

→公式マニュアル:break

繰り返し処理は変わらず、break;の位置で処理が終わります。

break実行結果

break実行結果

また、continue;というものもあります。
これはその後の処理をすっ飛ばして条件式判定を行なうものです。
例えば、

<?php
for($i = 0; $i < 10; $i++){
	if($i == 5){
		continue;
	}
	echo $i ."<br />";
}
?>

→公式マニュアル:continue

この例では$iが5の時だけ文字が出力されません。

continue実行結果

continue実行結果

これらのbreakやcontinueはwhileやdo-whileにも同様に使用することが出来ます。

今回は少しわかりにくかったかもしれませんが、反復処理が出来るようになるとプログラムが一層楽しめると思うので、是非習得してみてください。
また、今回は取り上げませんでしたがforeach()という特殊な反復処理を行なう構文もあるので、興味があればそちらも試してみてください。

ではでは。

  1. コメント 0

  1. トラックバック 0

return top