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

PHP while 文

Pocket

- 1 分ノート ! -

  • while文 はループ処理を行う
    while (式)
    	文
    
    //文が複数の場合「{ }(ブロック)」で括る
    while (式){
    	文
    	文
    	文
    }
    
  • while文 の 式 の評価は各ループ処理の開始時に行われる
  • 最初に while文 の 式 の評価が「FALSE(偽)」だと 文 は1回も実行されない
  • while文 を 入れ子 にすることが出来る
  • キーワード「break」でループを終了させることが出来る
  • キーワード「continue」で以降の文を実行せず再び while文 の 式 の評価へ戻ることが出来る
  • ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード


while文とは

POINT

  • while文 はループ処理を行う
    while (式)
    	文
    
    //文が複数の場合「{ }(ブロック)」で括る
    while (式){
    	文
    	文
    	文
    }
    
  • while文 の 式 の評価は各ループ処理の開始時に行われる
  • 最初に while文 の 式 の評価が「FALSE(偽)」だと 文 は1回も実行されない
  • ※文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコード

while文はループ(反復)処理を表現する制御文です。PHPで最も簡単なループ処理です。

while文の構文は

while (式)
  文

//文が複数の場合「{ }(ブロック)」で括る
while (式){
	文
	文
	文
}

です。

最初にwhile文の 式 を評価し、結果が「TRUE(真)」の場合に、文を実行し、その後、もう1度 式 の評価を行います。まだ「TRUE(真)」の場合は、文を実行し、再度 式 の評価を行います。このようにしてループ処理が続行されます。

結果は

1
2
3
4
5
6
7
8
9
10

となります。

while文の 式 の評価が「FALSE(偽)」と評価された場合は文は実行されずループは終了します。最初にwhile文の 式 の評価が「FALSE(偽)」だと文は1回も実行されません

以下の例は最初にwhile文の 式 の評価が「FALSE(偽)」なので、文は1回も実行されません。

結果は


となります。

while文の 式 の評価は各ループ処理の開始時に行われるので、ループ内の文の実行により 式 の内容が変化したとしても、文の実行はループ処理が終るまで続きます。

以下の例は文の実行「$bool = FALSE;」により式の内容が「FALSE(偽)」へと変化しましたが、式 の評価はループ処理の開始時に行われるので、文はループ処理が終わるまで実行されます。

結果は

1
2

となります。

while文の 式 の結果は「真(TURE)」と「偽(FALSE)」の論理型で得る必要があります。ですので、式 には「比較演算子」や「論理演算子」など使用するなどして論理値の「真(TRUE)」「偽(FALSE)」の値を返す式を作ります。論理型についてはこちらを参照下さい。

文とはコードの記述単位の1つで、PHPの場合は「;(セミコロン)」で区切られるまでのコードです。

文が複数の場合は「{ }(ブロック)」で括ります。if文などと同じです。


簡単なwhile文

結果は

1
2
3
4
5
6
7
8
9
10

となります。

while文の 式 が「FALSE(偽)」と評価された時点で処理を終了します。


式 が最初に「false(偽)」の場合のwhile文

POINT

  • 最初に while文 の 式 の評価が「FALSE(偽)」だと 文 は1回も実行されない

while文は、式 の評価を各ループ処理の開始時に行うので、最初に 式 の評価が「FALSE(偽)」だと 文 は1回も実行されません。

結果は

となります。


while文の入れ子

POINT

  • while文 を 入れ子 にすることが出来る

while文では、while文の中にwhile文を記述する入れ子(ネスト)が可能です。

結果は

1(1-1,1-2,1-3,)
2(2-1,2-2,2-3,)
3(3-1,3-2,3-3,)
4(4-1,4-2,4-3,)
5(5-1,5-2,5-3,)
6(6-1,6-2,6-3,)
7(7-1,7-2,7-3,)
8(8-1,8-2,8-3,)
9(9-1,9-2,9-3,)
10(10-1,10-2,10-3,)

となります。


キーワード「break」でループを終了させる

POINT

  • キーワード「break」でループを終了させることが出来る

while文ではキーワード「break」を使用してwhile文のループを終了させることが出来ます。「break」が出てきた時点で、文の実行が終了しループ処理を抜け出します。

以下の例文ではif文でキーワード「break」を配置し、文の実行を終了させループ処理を抜け出しています。

結果は

1
2
3
4

となります。


キーワード「break」のオプションを使用

キーワード「break」はループを終了させる機能がありますが、while文が入れ子(ネスト)構造であった場合に、何段階のループを抜けるかを数字で指定することが出来ます。これは、キーワード「break」のオプション機能です。

結果は

$iは1
$jは5

となります。

例文では「break 2;」と指定して、ループ構造を2段階抜けています。$jが5まで加算された時点で「break」が実行され、ループ処理を2段階抜けるので、すべてのループから抜けることになります。従って$iは加算されずにループ処理を終了しています。


キーワード「continue」で 式 の評価に戻る

POINT

  • キーワード「continue」で以降の文を実行せず再び while文 の 式 の評価へ戻ることが出来る

キーワード「continue」を使用して以降の文を実行せずwhile文の 式 の評価に戻ることが出来ます。通常 while文の 文 の実行が最後まで終了してから、while文の 式 の評価へ戻りますが、キーワード「continue」が出てきた時点で以降の文を実行せずに、式 の評価へ戻ります。式 の評価後ループを再開します。

結果は

1
2
3
4
5となりました。
6
7
8
9
10

となります。

キーワード「continue」もキーワード「break」ど同様に、オプションで何段階のループを抜けるか数字で指定できます。

以下の例文では、「$i === 5」の場合にif文で「continue 2」を実行し最初のwhile文の 式 の評価へ戻っています。

結果は

1(1-1,1-2,1-3,)
2(2-1,2-2,2-3,)
3(3-1,3-2,3-3,)
4(4-1,4-2,4-3,)
5()
6(6-1,6-2,6-3,)
7(7-1,7-2,7-3,)
8(8-1,8-2,8-3,)
9(9-1,9-2,9-3,)
10(10-1,10-2,10-3,)

となります。


サンプルコード

– サンプル Click Here ! –

実行結果
簡単なwhile文
1
2
3
4
5
6
7
8
9
10

条件式が最初にfalseの場合のwhile文
一度も実行されない。

while文は入れ子が出来ます。
1(1-1,1-2,1-3,)
2(2-1,2-2,2-3,)
3(3-1,3-2,3-3,)
4(4-1,4-2,4-3,)
5(5-1,5-2,5-3,)
6(6-1,6-2,6-3,)
7(7-1,7-2,7-3,)
8(8-1,8-2,8-3,)
9(9-1,9-2,9-3,)
10(10-1,10-2,10-3,)

キーワード「break」を使用してwhile文のループを終了させる
1
2
3
4

キーワード「break」のオプションを使用
$iは1
$jは5

キーワード「continue」を使用して以降の文を実行せずwhile(式)の評価に戻る
1
2
3
4
5となりました。
6
7
8
9
10

– サンプル Click Here ! –


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

日付

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

関連記事

配列関数サンプル

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

この記事へのコメント

トラックバックurl

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