次の方法で共有


ステートメント (c)。

for のステートメントは、指定した回数だけステートメントまたは複合ステートメントを繰り返すことができます。for のステートメント本体はゼロで実行されるか、またはオプションの条件が false になるまで一致します。for のステートメントの実行中に値を初期化するために、変更 for ステートメントの中のオプションの式を使用できます。

構文

  • iteration-statement:
    for (; init-expression選択します。cond-expression選択します。 ; loop-expression選択します。) statement

次のように for のステートメントの順序で実行:

  1. init-expressionが存在する場合、評価されます。これはループの初期設定を指定します。init-expressionの型に制限はありません。

  2. 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

参照

概念

ステートメント (c)