2008年12月3日

for, while, do, break, continue, label

for | while | do | break | continue | label
for

用來建立一個執行的迴圈,其語法是:

for( 設定變數初值 ; 終點檢驗 ; 計算式 ) 單一指令;

for( 設定變數初值 ; 終點檢驗 ; 計算式 ) { 指令集; }

for 迴圈的執行過程如下:

  1. 迴圈必須有一個控制變數,首先要設定這個變數的初值。
  2. 檢驗變數的值,是否已到終點?如果到了終點,就會離開迴圈,繼續執行下面的程序。
  3. 如果未到終點,會執行迴圈的指令集。
  4. 執行上面的指令集後,會執行計算式,改變控制變數的值。然後回到上面的步驟 2。

上面的步驟會重複執行,直到終點跳出。由於一開始就作終點檢驗,如果初值就超過終點,則迴圈的指令集不會被執行。如果終點檢驗設計的不好,可能會造成無限迴圈,無法跳出來。

讀取物件的成員可用 for( in )

while

用來建立一個執行的迴圈,其語法是:

while( 條件式 ) 單一指令;

while( 條件式 ) { 指令集; }

while 迴圈的執行過程如下:

  1. 計算迴圈的條件式,結果為 false 或 0,就離開迴圈,繼續執行下面的程序。
  2. 結果為 true 或 非0值,會執行迴圈的指令集。然後回到上面的步驟 1。

上面的步驟會重複執行,直到條件式得到 false 跳出。由於一開始就作條件式檢驗,如果結果為 false,則迴圈的指令集不會被執行。迴圈的指令集必須有改變條件式的相關指令,迴圈才能停止;設計不良,可能變成無限迴圈。

do

用來建立一個執行的迴圈,其語法是:

do 單一指令; while( 條件式 )

do { 指令集; } while( 條件式 )

do 迴圈的執行過程如下:

  1. 執行迴圈的指令集。
  2. 計算迴圈的條件式,結果為 false 或 0,就離開迴圈,繼續執行下面的程序。
  3. 結果為 true 或 非0值,回到上面的步驟 1。

上面的步驟會重複執行,直到條件式得到 false 跳出。do 迴圈的指令集至少被執行一次,這與前面兩種指令不同。

break

可以跳出迴圈。break 只能用在迴圈中。

continue

可以跳過後面的指令,進行下一次迴圈的執行。continue 只能用在迴圈中。

  • 上例中,5 沒有印出來。

標籤(label)

設定一個跳躍的終點。標籤的名稱要符合 識別名 的規定;名稱後接一個”:”。標籤必須配合 break, continue 使用;原本 break, continue 只能跳出本身直屬迴圈的最近一層;加上標籤後,可以跳出很多層迴圈。雖然標籤之後可以接任何指令,但是由於 break, continue 本身的限制,所以沒法跳躍到任一的指令;此時標籤之後,只能接 for, while, do 迴圈指令。

  • 上例中,如果將 break A4 改成 break,結果是 0 0 1 1 2 2 3 3 4 4。

©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。