ステートメント (c)。
for のステートメントは、指定した回数だけステートメントまたは複合ステートメントを繰り返すことができます。for のステートメント本体はゼロで実行されるか、またはオプションの条件が false になるまで一致します。for のステートメントの実行中に値を初期化するために、変更 for ステートメントの中のオプションの式を使用できます。
構文
- iteration-statement:
for (; init-expression選択します。cond-expression選択します。 ; loop-expression選択します。) statement
次のように for のステートメントの順序で実行:
init-expressionが存在する場合、評価されます。これはループの初期設定を指定します。init-expressionの型に制限はありません。
cond-expressionが存在する場合、評価されます。この式は、算術またはポインター型である必要があります。また、各イテレーションの前に評価されます。3 とおりの結果があります:
cond-expression が true (非ゼロ) の場合、statement が実行されます; 次 loop-expressionが存在する場合、評価されます。loop-expression は、各反復後に評価されます。型に制限はありません。副作用は順序で実行されます。プロセスは cond-expressionの評価から再び開始されます。
cond-expression を省略すると、cond-expression は、上の段落で説明したように、実際の実行順序とまったく考慮されます。cond-expression の引数のない for のステートメントは、ステートメントがメイン フレーム内の break または return のステートメントが実行される場合、または goto が (for のステートメント本体の外部のラベル付きステートメントに) 実行すると終了します。
cond-expression が false (0) の場合、for のステートメントの実行が終了し、コントロールはプログラムの次のステートメントに渡されます。
for のステートメントは、ループ内のステートメント break、goto、または return のステートメントが実行される時点で終了します。for のループの continue のステートメントは loop-expression を評価します。break のステートメントが for のループ内で実行すると、loop-expression は評価されず、実行されません。このステートメント
for( ;; )
break、goto、または return のステートメントでのみ終了できない無限ループを生成する通常の方法です。
コード
この例では for のステートメントを示すとおりです:
// c_for.c
int main()
{
char* line = "H e \tl\tlo World\0";
int space = 0;
int tab = 0;
int i;
int max = strlen(line);
for (i = 0; i < max; i++ )
{
if ( line[i] == ' ' )
{
space++;
}
if ( line[i] == '\t' )
{
tab++;
}
}
printf("Number of spaces: %i\n", space);
printf("Number of tabs: %i\n", tab);
return 0;
}
出力
Number of spaces: 4
Number of tabs: 2