制御構文を覚えよう! (4/6)
作成:2010-12-03 10:03
更新:2010-12-03 10:30
更新:2010-12-03 10:30
■whileとdo while文
続いて、「繰り返し」を行う構文に進みましょう。繰り返しは、文字通り同じ処理を何度も実行するための構文です。これもいくつか種類がありますが、もっとも簡単なのは「while」を使った構文でしょう。
まぁ、一般的には「最初にチェックする」書き方を使うことが多いでしょう。後でチェックするやり方は、最初から条件が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だけ減らす働きをします。
これらは、++も--も、式の中に埋め込むこともできます。今の例なら、
また、これらの演算子は、変数の前にも後にも書くことができます。例えば、「++$num」「$num++」といった具合ですね。これらは、実は動作が微妙に違うので注意してください。
前に演算子をつけたとき、変数が式などに利用されている場合、1を足したり引いたりした後で値が式の中で使われます。が、後に演算子を付けると、まず値が式の中で使われた後で、1を足したり引いたりするのです。つまり、その変数を利用する時と、1足したり引いたりする時のタイミングが違っているのです。
まぁ、このあたりは、実際に何度か利用するようになると自然に覚えることでしょう。とりあえずは「こういう記号がある」ということだけ頭に入れておきましょう。
・最初に条件をチェックこの構文は、条件をチェックしてから繰り返しを行うか、繰り返し部分を実行した後で条件をチェックするか、その2通りの書き方が用意されています。条件には、ifと同様に、真偽値(trueかfalse)で表される式や値が設定されます。
while ( 条件 ){
……繰り返す処理……
}
・最後に条件をチェック
do {
……繰り返す処理……
} while ( 条件 );
まぁ、一般的には「最初にチェックする」書き方を使うことが多いでしょう。後でチェックするやり方は、最初から条件が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足したり引いたりする時のタイミングが違っているのです。
まぁ、このあたりは、実際に何度か利用するようになると自然に覚えることでしょう。とりあえずは「こういう記号がある」ということだけ頭に入れておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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>
※関連コンテンツ