共用方式為


為陳述式 (C)

for 陳述式可讓您重複執行陳述式或複合陳述式依指定的次數。 for 陳述式的主體中執行一次或多次,直到的選擇性條件變成 false。 您可以使用 for 陳述式內的任意運算式在 for 陳述式的執行期間初始化和變更值。

語法

  • 反覆運算陳述式:
    for ( init-expression 選取 ; cond-expression選取 ; loop-expression 選取 為statement)

for 陳述式可執行如下:

  1. init-expression,如果有的話,評估。 對於重複指定初始化。 沒有為 init-expression類型的限制。

  2. cond-expression,如果有的話,評估。 這個運算式必須是算術或指標型別。 在每個反覆項目之前進行評估。 三個結果是可能的:

    • 如果 cond-expression 為 true (非零), statement 執行;然後 loop-expression,如果有的話,評估。 loop-expression 在每個反覆項目之後評估。 沒有為其型別的限制。 副作用的順序執行。 處理來自 cond-expression的評估重新啟動。

    • 如果省略 cond-expression ,則 cond-expression 會被視為 true 和執行就如前面段落中所述。 沒有 cond-expression 引數的 for 陳述式結束,只有在陳述式主體內的 break 或 return 陳述式時,或者,當 goto (為 for 陳述式主體以外的標記為陳述式) 時執行。

    • 如果 cond-expression 是 false (0), for 陳述式結束和控制項的集合執行到程式的下一個陳述式。

當 break、 goto或 return 陳述式在陳述式主體內執行時, for 陳述式也會結束。 在 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;
}

Output

Number of spaces: 4
Number of tabs: 2

請參閱

概念

陳述式 (C)