UPDATE:2018年11月06日
PHP for 文
1 Minute Note
- for文はループ処理を行う
for (式1; 式2; 式3) 文 //文が複数の場合「{ }(ブロック)」で括る for (式1; 式2; 式3){ 文 文 文 }
- 式1 は、
ループ初回時ループ前に無条件で1回のみ評価される - 式2 は、
ループ処理の前に毎回、評価される。式の値が「TRUE(真)」の場合は、ループ処理が継続され、文が実行される。式の値が「FALSE(偽)」の場合は、ループの実行は終了する - 式3 は、
ループ処理の文が実行されるたびに、評価される - ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード
- 複数の式を「,(カンマ)」で区切って指定できる
- 式2の評価は「,(カンマ)」で区切った式すべてが「TREU(真)」である必要がある
- 式3で結果を出力することができる
- 式2を空にすると無限ループとなる
- すべての式を空にすると無限ループとなる
- キーワード「break」でループを抜ける
for文とは
- for文はループ処理を行う
for (式1; 式2; 式3) 文 //文が複数の場合「{ }(ブロック)」で括る for (式1; 式2; 式3){ 文 文 文 }
- 式1 は、
ループ初回時ループ前に無条件で1回のみ評価される - 式2 は、
ループ処理の前に毎回、評価される。式の値が「TRUE(真)」の場合は、ループ処理が継続され、文が実行される。式の値が「FALSE(偽)」の場合は、ループの実行は終了する - 式3 は、
ループ処理の文が実行されるたびに、評価される - ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード
for文はループ(反復)処理を表現する制御文です。
for文の構文は
for (式1; 式2; 式3) 文 //文が複数の場合は「{ }(ブロック)」で括る for (式1; 式2; 式3){ 文 文 文 }
です。
for文 の 式1 は、ループ初回時のループ前に無条件で1回のみ評価されます。
式2 は、ループ処理の前に毎回評価されます。式2 の値が「TRUE(真)」の場合は、ループ処理が継続され、文が実行されます。式2 の値が「FALSE(偽)」の場合は、ループの実行は終了します。式2 の結果は「真(TURE)」と「偽(FALSE)」の論理型で得る必要があります。ですので、式には「比較演算子」や「論理演算子」など使用するなどして論理値の「真(TRUE)」「偽(FALSE)」の値を返す式を作ります。論理型についてはこちらを参照下さい。
式3 は、ループ処理の文が実行されるたびに、評価されます。つまり、式2 の結果が「真(TURE)」で、文が実行された後、最後に式3が評価されます。
文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコードです。
文が複数の場合は「{ }(ブロック)」で括ります。if文などと同じです。
for文の簡単な例
以下の例では、式1 「$i = 1;」が1回目ループ処理が始まる前に1回のみ実行されます。式2「$i <= 10;」がループ処理の前に毎回評価されます。式2の結果が「TRUE(真)」であれば、式3「$i++」がループ処理の文が実行されるたびに毎回評価されます。式2の値が「FALSE(偽)」の場合は、ループの実行は終了します。
1 2 3 4 5 | <!-- サンプルコード --> <?php for($i = 1; $i <= 10; $i++) echo $i."<br>\n"; ?> |
結果は
2
3
4
5
6
7
8
9
10
となります。
以下の例では、式2 の結果が「偽(FALSE)」なので、文は何も実行されません。
1 2 3 4 5 | <!-- サンプルコード --> <?php for($i = 1; $i < 1; $i++) echo $i."<br>\n"; ?> |
結果は
となります。
式1 で $i は 1 が代入されているので、式2 の 「$i < 1」 は「偽(FALSE)」になります。従ってループは終了で文は実行されません。式3は、文が実行された後に評価される式なので、こちらも実行されません。
以下の例では、式2 の結果が「真(TRUE)」になり文が実行されます。
1 2 3 4 5 | <!-- サンプルコード --> <?php for($i = 1; $i <= 1; $i++) echo $i."<br>\n"; ?> |
結果は
となります。
式1 で $i には 1 が代入され、式2 の 「$i <= 1」 は「真(TRUE)」になります。従ってループは開始され文は実行されます。文が実行された後、式3 が評価されます。式3 の「++(加算子)」によって $i は 2 になります。ループ初回時に毎回式2は評価されるので、$i が 2 の状態で 式2 は評価されます。今回、式2 の 「$i <= 1」 は「偽(FALSE)」になります。従ってループは終了で文は実行されません。
for文で複数の式を指定
- 複数の式を「,(カンマ)」で区切って指定できる
- 式2の評価は「,(カンマ)」で区切った式すべてが「TREU(真)」である必要がある
for文では複数の式を「,(カンマ)」で区切って指定することができます。
・簡単な例
//式1 $i = 1, $j = 1; //式2 $i <= 10, $j <= 10; //式3 $i++, $j++
1 2 3 4 5 | <!-- サンプルコード --> <?php for($i = 1, $j = 1; $i <= 10, $j <= 10; $i++, $j++) echo 'i:'.$i.' j:'.$j."<br>\n"; ?> |
結果は
i:2 j:2
i:3 j:3
i:4 j:4
i:5 j:5
i:6 j:6
i:7 j:7
i:8 j:8
i:9 j:9
i:10 j:10
となります。
・式2の評価では「,(カンマ)」で区切った式すべてが「TREU(真)」である必要があります。
//式1 $i = 1, $j = 1; //式2 $i <= 10, $j <= 3; //式3 $i++, $j++
1 2 3 4 5 | <!-- サンプルコード --> <?php for($i = 1, $j = 1; $i <= 10, $j <= 3; $i++, $j++) echo 'i:'.$i.' j:'.$j."<br>\n"; ?> |
結果は
i:2 j:2
i:3 j:3
となります。
for文の式3で出力
- 式3で結果を出力することができる
for文では式3で結果を出力することができます。
//式1 $i = 1, $j = 1; //式2 $i <= 10; $j *= $i //式3 print '$i:'.$i.' ', print '$j:'.$j."<br>\n", $i++
1 2 3 4 | <!-- サンプルコード --> <?php for ($i = 1, $j = 1; $i <= 10; $j *= $i, print '$i:'.$i.' ', print '$j:'.$j."<br>\n", $i++); ?> |
結果は
$i:2 $j:2
$i:3 $j:6
$i:4 $j:24
$i:5 $j:120
$i:6 $j:720
$i:7 $j:5040
$i:8 $j:40320
$i:9 $j:362880
$i:10 $j:3628800
となります。
式3に出力を得る
//式3 print '$i:'.$i.' ', print '$j:'.$j."<br>\n", $i++
が記述されています。
for文で無限ループとなる場合
- 式2を空にすると無限ループとなる
- すべての式を空にすると無限ループとなる
式2を空にすると無限ループになります。全ての式を空にすることも出来、これも無限ループになります。
・式2を空にする
1 2 3 4 5 | <!-- サンプルコード --> <?php for ($i = 1; ; $i++) echo "無限ループ<br>\n"; ?> |
結果は
無限ループ
無限ループ
・・
・
となります。
・全ての式を空にする
1 2 3 4 5 | <!-- サンプルコード --> <?php <pre class="lang:php decode:true " >for (;;) echo "無限ループ<br>\n"; ?> |
結果は
無限ループ
無限ループ
・・
・
となります。
キーワード「break」でループ解除
- キーワード「break」でループを抜ける
キーワード「break」でfor文のループを抜ける事ができます。「break」が出てきた時点でループが解除され文の実行が終了します。
1 2 3 4 5 6 7 8 9 | <!-- サンプルコード --> <?php for ($i = 1; $i <= 20; $i++) { if ($i > 5) { break; } echo $i."<br>\n"; } ?> |
結果は
2
3
4
5
となります。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!-- サンプルコード --> <h3>簡単なfor文</h3> <?php for($i = 1; $i <= 10; $i++) echo $i."<br>\n"; ?> <h3>for文で複数の式を指定する。</h3> <?php for($i = 1, $j = 1; $i <= 10, $j <= 10; $i++, $j++) echo 'i:'.$i.' j:'.$j."<br>\n"; ?> <h3>for文で複数の式を指定する。</h3> <?php for($i = 1, $j = 1; $i <= 10, $j <= 3; $i++, $j++) echo 'i:'.$i.' j:'.$j."<br>\n"; ?> <h3>for文で複数の式を指定する。</h3> <?php for ($i = 1, $j = 1; $i <= 10; $j *= $i, print $j."<br>\n", $i++); ?> <h3>式2を空にしてif文でbreak処理をしてループを終了させる</h3> <?php for ($i = 1; ; $i++){ if($i > 10){ break; } echo $i."<br>\n"; } ?> |
簡単なfor文
1
2
3
4
5
6
7
8
9
10
for文で複数の式を指定する。
i:1 j:1
i:2 j:2
i:3 j:3
i:4 j:4
i:5 j:5
i:6 j:6
i:7 j:7
i:8 j:8
i:9 j:9
i:10 j:10
for文で複数の式を指定する。
i:1 j:1
i:2 j:2
i:3 j:3
for文で複数の式を指定する。
1
2
6
24
120
720
5040
40320
362880
3628800
式2を空にしてif文でbreak処理をしてループを終了させる
1
2
3
4
5
6
7
8
9
10
タグ(=記事関連ワード)
日付
最終更新日:2018年11月06日