ウェピックスではウェブ界の情報をピックアップします!
menu
ホーム > PHPの文法 > 6 制御文 > PHP for 文

PHP for 文

Pocket

- 1 分ノート ! -

  • for文はループ処理を行う
    for (式1; 式2; 式3)
    	文
    
    //文が複数の場合「{ }(ブロック)」で括る
    for (式1; 式2; 式3){
    	文
    	文
    	文
    }
    
  • 式1 は、
    ループ初回時ループ前に無条件で1回のみ評価される
  • 式2 は、
    ループ処理の前に毎回、評価される。式の値が「TRUE(真)」の場合は、ループ処理が継続され、文が実行される。式の値が「FALSE(偽)」の場合は、ループの実行は終了する
  • 式3 は、
    ループ処理の文が実行されるたびに、評価される
  • ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード
  • 複数の式を「,(カンマ)」で区切って指定できる
  • 式2の評価は「,(カンマ)」で区切った式すべてが「TREU(真)」である必要がある
  • 式3で結果を出力することができる
  • 式2を空にすると無限ループとなる
  • すべての式を空にすると無限ループとなる
  • キーワード「break」でループを抜ける


for文とは

POINT

  • 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
6
7
8
9
10

となります。

以下の例では、式2 の結果が「偽(FALSE)」なので、文は何も実行されません。

結果は

となります。

式1 で $i は 1 が代入されているので、式2 の 「$i < 1」 は「偽(FALSE)」になります。従ってループは終了で文は実行されません。式3は、文が実行された後に評価される式なので、こちらも実行されません。

以下の例では、式2 の結果が「真(TRUE)」になり文が実行されます。

結果は

1

となります。

式1 で $i には 1 が代入され、式2 の 「$i <= 1」 は「真(TRUE)」になります。従ってループは開始され文は実行されます。文が実行された後、式3 が評価されます。式3 の「++(加算子)」によって $i は 2 になります。ループ初回時に毎回式2は評価されるので、$i が 2 の状態で 式2 は評価されます。今回、式2 の 「$i <= 1」 は「偽(FALSE)」になります。従ってループは終了で文は実行されません。


for文で複数の式を指定

POINT

  • 複数の式を「,(カンマ)」で区切って指定できる
  • 式2の評価は「,(カンマ)」で区切った式すべてが「TREU(真)」である必要がある

for文では複数の式を「,(カンマ)」で区切って指定することができます。

・簡単な例

式1 式2 式3 それぞれに「,(カンマ)」で区切って2つの式を指定します。

//式1 $i = 1, $j = 1;
//式2 $i <= 10, $j <= 10;
//式3 $i++, $j++

結果は

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

となります。

式2の評価では「,(カンマ)」で区切った式すべてが「TREU(真)」である必要があります。

 //式1 $i = 1, $j = 1;
//式2 $i <= 10, $j <= 3;
//式3 $i++, $j++

結果は

i:1 j:1
i:2 j:2
i:3 j:3

となります。


for文の式3で出力

POINT

  • 式3で結果を出力することができる

for文では式3で結果を出力することができます。

//式1 $i = 1, $j = 1;
//式2 $i <= 10; $j *= $i
//式3 print '$i:'.$i.' ', print '$j:'.$j."<br/>\n", $i++

結果は

$i:1 $j:1
$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文で無限ループとなる場合

POINT

  • 式2を空にすると無限ループとなる
  • すべての式を空にすると無限ループとなる

式2を空にすると無限ループになります。全ての式を空にすることも出来、これも無限ループになります。

・式2を空にする

結果は

無限ループ
無限ループ
無限ループ
・・

となります。

・全ての式を空にする

結果は

無限ループ
無限ループ
無限ループ
・・

となります。


キーワード「break」でループ解除

POINT

  • キーワード「break」でループを抜ける

キーワード「break」でfor文のループを抜ける事ができます。「break」が出てきた時点でループが解除され文の実行が終了します。

結果は

1
2
3
4
5

となります。


サンプルコード

– サンプル Click Here ! –

実行結果

簡単な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

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2011年11月6日
最終更新日:2017年03月23日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/phpref-structures_for/trackback/