for 迴圈敘述的使用

◎も使用時機:基本上「迴圈」就是重複不斷某種動作的意思,也就是說當程式流程進行中,需要將某部分敘述重複執行固定次數時,就是使用 for 迴圈敘述的時機。例如重複扔出3顆骰子並印出點數、連續輸入50個學生成績、印九九乘法表等等。

◎ 語法:

for (初值設定; 條件式; 每次增減設定)

{

     要重複的敘述群;

}

Y
N
初值設定
離開迴圈
條件式
要重複的敘述群
每次增減設定
此敘述在使用上有許多的變化,必須特別加以注意,否則容易誤用而不自覺。基本上 for 迴圈( )括號內有 3 個部分,分別用 2 個分號 (;) 間隔開:第1個部分是設定初值;第2個部分是設定條件式作為迴圈是否繼續執行的判斷依據;第3個部分是每次增減設定,也就是設定每當迴圈重複1次時,一些變數值是否要做某種改變。下面是 for 迴圈的執行流程圖,請仔細研究:

 

 

 

 

 

 

 

至於「要重複的敘述群」如果超過1條敘述,則必須用大括號 { } 括住;若只有1條敘述,則大括號可以省略。另外在 for 迴圈的小括號( )之後不要加分號 (;),否則會被視為是『空敘述』,這些應該都是基本常識了,請牢記!

下面舉一些應用實例供參考:

(1) 列印10次「武林至尊,寶刀屠龍」。

     for (x=0 ; x<10 ; x++)
         printf ("武林至尊,寶刀屠龍");

(2) 計算 1 + 2 + 3 + 4 + ...... + 100 的結果。

     int   x , sum=0 ;
     for (x=1 ; x<=100; x++)
         sum = sum + x ;
     printf(" 總和 = %d", sum);

(3) 計算 1 + 2 + 4 + 8 + ...... + 1024 的結果。

     int  x, sum ;
     for (x=1, sum=0 ; x<=1024; x=x*2)     //  綠色部分是要告訴你「初值設定」可以同時設定多個變數值,
         sum = sum + x ;                           //  只要用逗號(,) 間隔開即可。其實在「每次增減設定」中也可如此。
     printf(" 總和 = %d", sum);

(4) 下面是一個雙層巢狀 for 迴圈的例子,此例執行時會印出『5  6  7  10  12  14』,請研究內外層順序關係。

     int  x, y ;
     for (x=1 ; x<3 ; x++)
     for (y=5 ; y<8 ; y++)
         printf("%d  ", x*y);