物件導向程式設計

 

 

    3.2 for迴圈

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/java

E-mail : pierre@isu.edu.tw   

 


for迴圈的基本結構如下:

for(起始條件運算式; 繼續條件運算式; 每次迴圈循環後的遞增運算式 )

{

            程式陳述;

}

當程式執行到for迴圈, 會先執行起始條件運算式,這是一個迴圈開頭的位置,整個迴圈反覆執行的過程,不會再回到這個位置。因此我們通常把迴圈內部需要用到的控制變數宣告或變數初始值在此設定。至於第二個部分:繼續條件運算式,將在每一個循環結束時被執行,它的作用是判斷迴圈是否還要繼續,如果該運算式為false,則結束迴圈,如果是true,則執行遞增運算式後,繼續進行迴圈下一個循環。

如果迴圈內的陳述只有一行,則我們可以省略大括號{},也就是

 

for(起始條件運算式; 繼續條件運算式; 每次迴圈循環後的遞增運算式)

        程式陳述;

 

後者的寫法雖然較為精簡,但是對於初學者,不管迴圈內的陳述式多行還是只有一行,我們仍然建議前者的寫法,因為對for迴圈加上大括號{}可以使程式更為清晰可讀,一旦程式需要異動時,也較不容易發生錯誤。

 

class Hello

{

    public static void main (String args[])

   {

      System.out.print("Hello "); // Say Hello

      for(int count=1;count<=10;count=count+1)

      {// Test and Loop

         System.out.print(count+" ");

      }

      System.out.println(); // Finish

  }

}

上述範例在迴圈中宣告一個整數型別的變數來當作計數器,變數名稱為count 程式中for 迴圈的第一部分

        count = 1;

是起始條件運算式,其目的在於將count 變數值設為1 第二部分

        count <= 10;

是繼續條件運算式,當運算式值為true,for 迴圈將會繼續反覆迴圈中的程式,如果運算式值為false,則迴圈就會結束。 由於一開始變數count 被設為1, 上述條件判斷運算式count <= 10將得到true,因此迴圈中的程式陳述

 

     System.out.print(count+" ");

 

會被執行, 而在螢幕上輸出count 變數值1, 並在其後接一空白字元。至此完成迴圈的一次循環。

接下來, for 迴圈所剩下的第三部分(遞增運算式)將被執行:

         count = count + 1

並使得變數count 中存放的值增加1 流程控制(flow control)現在又會回到繼續條件運算式的判斷,

        count <= 10;

判斷結果又再次為真(TRUE), 所以迴圈中的程式

     

   System.out.print(count+" ");

 

將再次的被執行。 變數count 中的值再次的被增加, 繼續條件判斷式再次的被測試……, 程式流程將被反覆的執行。直到變數count 中的值增加至11,情況才有所改變。

這時, for 迴圈中的繼續條件判斷式

        count <= 10

將得到false的測試結果, 於是結束for 迴圈的全部循環,使得程式流程控制 (program control)將執行權轉移至迴圈外的下一行程式

 

       System.out.println();

 

在螢幕上輸出一空白行後,整個程式正常結束。

 


課堂練習:

1. 使用for迴圈來計算1到100的累加值。

2.    使用for迴圈來計算110的奇數和。

3.    使用for迴圈和於數運算子來判斷87是否為質數。



 

物件導向程式設計

義守大學電機系 陳慶瀚

2001.10.02