制御構文を覚えよう! (5/6)
作成:2010-12-03 10:44
更新:2010-12-03 10:44
更新:2010-12-03 10:44
■forによる複雑な繰り返し
繰り返し構文は、whileよりも「for」という構文の方がもっと頻繁に利用するでしょう。これは、単なる条件の設定だけでなく、初期化や繰り返し処理などまでまとめて設定できる構文です。
2つ目が、繰り返しの条件です。ここに書いた式や値がtrueならば、繰り返しを続けます。falseになったら繰り返しを抜けて次に進みます。
3つ目は、繰り返し部分の処理を実行した後、次の繰り返しへ進む前に実行される処理です。要するに「繰り返しの後処理」というわけですね。繰り返すごとに変数の値を増減したりするのに利用されます。
このfor文は、記述する要素が多いので、実際に何度も書いて使い方に慣れておくとよいでしょう。下のリストに、サンプルを挙げておきます。これは、先ほどのwhileのサンプルを、forを使った形に書きなおしたものです。ここでは、
こうして、変数$iが1から順に2,3……と増えながら繰り返しを続けていき、100を超えたら繰り返しを抜ける、というようになっているのですね。
forはwhileよりややこしいですが、これを使うと繰り返しのために余計なことを書く必要がなく、スクリプトがすっきりすることがわかるでしょう。
for ( 初期化処理 ; 条件 ; 繰り返し後処理 ) {このfor文は、その後の()内に3つの要素を記述します。1つ目は、繰り返しを開始する前に実行するもので、変数に値を代入したり、繰り返しのための準備を行います。
……繰り返す処理……
}
2つ目が、繰り返しの条件です。ここに書いた式や値がtrueならば、繰り返しを続けます。falseになったら繰り返しを抜けて次に進みます。
3つ目は、繰り返し部分の処理を実行した後、次の繰り返しへ進む前に実行される処理です。要するに「繰り返しの後処理」というわけですね。繰り返すごとに変数の値を増減したりするのに利用されます。
このfor文は、記述する要素が多いので、実際に何度も書いて使い方に慣れておくとよいでしょう。下のリストに、サンプルを挙げておきます。これは、先ほどのwhileのサンプルを、forを使った形に書きなおしたものです。ここでは、
for($i = 1;$i <= 100;$i++){……略……このような形でforを書いています。まず繰り返しに入る前に$i = 1を実行して変数$iに1を代入しておきます。そして、$i <= 100がtrueである(つまり$iが100以下)間、繰り返しを続けるようにしてあります。そして繰り返し処理を実行したら、$i++を実行して$iの値を1増やします。
こうして、変数$iが1から順に2,3……と増えながら繰り返しを続けていき、100を超えたら繰り返しを抜ける、というようになっているのですね。
forはwhileよりややこしいですが、これを使うと繰り返しのために余計なことを書く必要がなく、スクリプトがすっきりすることがわかるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<?php $total = 0; for($i = 1;$i <= 100;$i++){ $total += $i; } ?> <!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>
※関連コンテンツ