|
for文(フォーぶん)はプログラミング言語において条件が真の間だけ与えられた文の実行を繰り返すというループを記述するための文である。forループは、whileループと違って、ループに入る前の初期化(通常カウンタ変数の初期化を行なう)を含む点で異なる。 また言語によってはforeach文をfor … in … のように書くことがあり、このときのfor文はイテレータの繰り返し処理をする文になる。 == 文法 == === C 系 === awk, C, C++, C#, D, Java, JavaScript, Perlなどでは基本的な構文は以下のようになる。 for(初期化; ループの継続条件; カウンタ変数の更新) 文 文はどのような文でもよいが、次のような文がよく使われる。 for(…; …; …) 式; / * 単文 */ for(…; …; …) for(…; …; …) for(…; …; …) / * for文 */ 式; このループは次のような手順で実行される。 # 初期化を実行する。 # 条件を評価する。条件が偽ならば、ループを終了する。 # 真文を実行する。 # カウンタ変数の更新を実行する。 # 条件の評価に戻る。 条件がはじめから偽の場合は、真文は一度も実行されない。また、初期化・条件・カウンタ変数の更新の三つは、それぞれ省略することが出来る。条件を省略した場合、条件は常に真であるとみなされ、ループから強制的に抜け出る構文(break, return など)がなければ無限ループとなる。 例えば、初期化とカウンタ変数の更新を省略し、条件のみを記述する場合、次のようになる。 for (; x < 100;) …… 初期化などを省略した場合でも、丸括弧内で区切りとして使われる ; を省略することはできない。 C99、C++、C#、Java では初期化は式に限られず、ローカル変数を宣言できる。for文は暗黙のブロックを作る、つまり と等価とみなされるため、宣言された変数のスコープはfor文内(for(…; …; …) を含む)に限られる。たとえば次のコードでは、それぞれの i は別のブロックにあるため、正常なコードとなる。 int i = 1; for(int i = 0; i < 10; i++) …… for(int i = 0; i < 10; i++) for(int i = 0; i < 10; i++) …… / * ここでの i は 1 */ ただし古いC++では暗黙のブロックはなかったため、このコードでは同じブロック内で i が複数回宣言されておりコンパイルエラーとなった。 初期化(式の場合)・ループの継続条件・カウンタ変数の更新は、それぞれ1つの式のみが許される。ただしコンマ演算子を使って、実質的に2つの演算を1つの式で表すことができる。初期化で宣言をする場合も、1つの宣言文のみが許される。したがって、同じ型の場合に限り複数変数を宣言できる。 for(int i = 0, j = 0; i < 10; i++, j++) .... 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「For文」の詳細全文を読む スポンサード リンク
|