For文
awk, C, C++, C#, D, Java, JavaScript, Perlなどでは基本的な構文は以下のようになる。
文はどのような文でもよいが、次のような文がよく使われる。
このループは次のような手順で実行される。
初期化を実行する。
条件を評価する。条件が偽ならば、ループを終了する。
真文を実行する。
カウンタ変数の更新を実行する。
条件の評価に戻る。
条件がはじめから偽の場合は、真文は一度も実行されない。また、初期化・条件・カウンタ変数の更新の三つは、それぞれ省略することが出来る。条件を省略した場合、条件は常に真であるとみなされ、ループから強制的に抜け出る構文(break, return など)がなければ無限ループとなる。
例えば、初期化とカウンタ変数の更新を省略し、条件のみを記述する場合、次のようになる。
初期化などを省略した場合でも、丸括弧内で区切りとして使われる ; を省略することはできない。
C99、C++、C#、Java では初期化は式に限られず、ローカル変数を宣言できる。for文は暗黙のブロックを作る、つまり
と等価とみなされるため、宣言された変数のスコープはfor文内(for(...; ...; ...)を含む)に限られる。さらにC99およびC++に関しては、外側のスコープで定義した変数と同じ名前の変数を内側のスコープで定義することができる。たとえば次のコードでは、それぞれの i は別のブロックにあるため、正常なコードとなる。
ただしANSI C++規格が制定される前(AT&T C++ 2.0まで)のC++では暗黙のブロックはなかったため、このコードでは同じブロック内で i が複数回宣言されておりコンパイルエラーとなった。C#およびJavaでは、外側のスコープで定義した変数と同じ名前の変数を内側のスコープで定義することができないため、コンパイルエラーとなる。
初期化(式の場合)・ループの継続条件・カウンタ変数の更新は、それぞれ1つの式のみが許される。ただしコンマ演算子を使って、実質的に2つの演算を1つの式で表すことができる。初期化で宣言をする場合も、1つの宣言文のみが許される。したがって、同じ型の場合に限り複数変数を宣言できる。
実行結果はCおよびそれに類する言語の場合で示したのと同様である。