libro
www.tuyano.com
初心者のためのPHPプログラミング入門

制御構文を覚えよう! (4/6)

作成:2010-12-03 10:03
更新:2010-12-03 10:30

■whileとdo while文

続いて、「繰り返し」を行う構文に進みましょう。繰り返しは、文字通り同じ処理を何度も実行するための構文です。これもいくつか種類がありますが、もっとも簡単なのは「while」を使った構文でしょう。
・最初に条件をチェック
while ( 条件 ){
    ……繰り返す処理……
}

・最後に条件をチェック
do {
    ……繰り返す処理……
} while ( 条件 );
この構文は、条件をチェックしてから繰り返しを行うか、繰り返し部分を実行した後で条件をチェックするか、その2通りの書き方が用意されています。条件には、ifと同様に、真偽値(truefalse)で表される式や値が設定されます。

まぁ、一般的には「最初にチェックする」書き方を使うことが多いでしょう。後でチェックするやり方は、最初から条件がfalseでも繰り返しを実行してしまうため、やや特殊なケースに限られるように思えます。

これも簡単なサンプルをあげましょう。下のリストは、1~100までの整数をすべて合計した結果を表示するものです。ここでは、「while($num <= 100)」というように条件を設定し、$numの値が100以下である間は繰り返しを続けるようにしています。

■代入演算子

そして、実行する処理では、「$total += $num;」という計算をしています。これは、「$total$numを足す」というものです。これも、=と同じように、左辺の変数に値を収める「代入演算子」というものです。ざっと以下のような記号があります。

A += B AにBをたす
A -= B AからBをひく
A *= B AにBをかける
A /= B AをBで割る
A %= B AをBで割ったあまりをAに設定する

この代入演算子は、普通のイコールによる代入の式をもっと書きやすくしたものです。例えば、$total += $num;にしても、これは$total = $total + $num;とすればいいだけです。が、$total += $num;のほうがすっきりしてわかりやすいでしょう。

■インクリメント演算子

また、ここでは「$num++;」ということも行っていますね。この「++」という記号で、1だけ増やす働きをします。これを「インクリメント演算子」といいます。

同様に、「--」という記号で「デクリメント演算子」というものもあります。これは変数の値を1だけ減らす働きをします。

これらは、++--も、式の中に埋め込むこともできます。今の例なら、
$total += $num++;
こう書くこともできます。こうすれば、2行が1つの文で済んでしまいます。

また、これらの演算子は、変数の前にも後にも書くことができます。例えば、「++$num」「$num++」といった具合ですね。これらは、実は動作が微妙に違うので注意してください。

前に演算子をつけたとき、変数が式などに利用されている場合、1を足したり引いたりした後で値が式の中で使われます。が、後に演算子を付けると、まず値が式の中で使われた後で、1を足したり引いたりするのです。つまり、その変数を利用する時と、1足したり引いたりする時のタイミングが違っているのです。

まぁ、このあたりは、実際に何度か利用するようになると自然に覚えることでしょう。とりあえずは「こういう記号がある」ということだけ頭に入れておきましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?php
	$num = 1;
	$total = 0;
	while($num <= 100){
		$total += $num;
		$num++;
	}
?>
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
		xml:lang="ja" lang="ja"> 
	<head> 
		<meta http-equiv="Content-Type"
			content="text/html; charset=UTF-8" /> 
		<title>sample page</title>
	</head>
	<body>
		<h1>Hello PHP!</h1>
		<div>
			<?php echo "合計:" . $total; ?>
		</div>
	</body>
</html>

※関連コンテンツ

「初心者のためのPHPプログラミング入門」に戻る