Presentation is loading. Please wait.

Presentation is loading. Please wait.

Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.

Similar presentations


Presentation on theme: "Do While 迴圈 東海大學物理系‧資訊教育 施奇廷."— Presentation transcript:

1 Do While 迴圈 東海大學物理系‧資訊教育 施奇廷

2 While: 條件式的迴圈 相對於for: 可計數式的迴圈,執行的次數是固定的;while 迴圈的執行次數不固定,只要指定的條件滿足就會一直執行 語法:

3 改寫等差級數之範例 條件算式 起始算式 控制算式

4 while: 語法解說 while:根據條件算式的真假, 來決定是否執行迴圈的動作。若為真, 則執行以大括號括住的動作; 若為假則跳過動作不執行, 也就是跳出迴圈。 條件算式:可以為任何算式、變數或數值。如果結果為非 0 的數值, 則表示為真; 否則為假。

5 預先條件算式迴圈:while 動作:可以為任何合法的程式語法。 while 的執行流程如下圖所示:

6 範例:求兩整數之最大公因數 要求兩個數的最大公因數, 可以用輾轉相除法。也就是兩個數先相除一次後, 用除數當新的被除數, 餘數當新的除數。如此不斷的除下去, 直到除數大於被除數為止, 除數即為最小公因數。由於要避免除以 0 的情況出現, 所以必須先判斷除數是否為 0 , 才能進行相除。針對程式此項需求, 我們可以使用 while 迴圈來完成。程式如課本 p.6-7 作業:請畫出此程式之流程圖

7 後設條件算式迴圈:do-while do-while 是後設判斷式的迴圈, 是先執行一次動作後, 再判斷迴圈控制的條件, 若條件成立時再回到前面執行 {} 內的動作, 如此重複直到條件算式的結果為假為止。格式如下: 流程圖如下:

8 流程圖

9 Summary: 三種迴圈的用法比較 For: 可數式的迴圈,通常預設了此迴圈被執行的次數,而且必定存在一個「整數」變數作為此迴圈的index While: 首先檢查條件算式是否滿足,如果滿足就進入迴圈執行命令,否則跳出。使用這種迴圈不需預設執行次數 Do while: 與 while 類似,不同點是「必定先執行一次」才開始檢查條件算式

10 While 的無窮迴圈

11 跳離迴圈的方法:break, continue, goto
這些指令會放在迴圈的 {動作} 部分內 continue: 會離開這一次的迴圈執行,進入下一次迴圈 break: 完全跳出迴圈,不再執行 goto: 直接跑到指定的程式位置,繼續執行

12 Continue:

13 break:

14 goto:

15 少用goto! goto 並不只限用於迴圈中, 在任何位置使用 goto, 都可以使程式的執行轉移到指定的位置。這是 goto 優點, 善用其優點, 可以增加撰寫程式的方便性。 但是, goto 的優點也是其缺點, 如果因為其方便性而濫用, 將會造成程式閱讀的困難, 甚至破壞整個程式的結構。所以建議讀者, 如果不是很熟悉 goto 的應用, 請盡量少用。

16 使用迴圈的注意事項 兩迴圈之間的範圍不可以交錯 條件算式的設定要合理 依照程式需求, 選擇使用特性適合的迴圈

17 兩迴圈之間的範圍不可以交錯 如果迴圈的動作敘述超過了一行, 就需要以大括號 {} 括住敘述的程式碼。當在同一程式中存在兩個以上的迴圈時, 兩迴圈以大括號 {} 括住敘述的程式碼不可以交錯:

18 兩迴圈之間的範圍不可以交錯 當兩迴圈範圍交錯時, 編譯器會將動作 2 錯認為迴圈 1 的範圍, 而迴圈 2 的效力無法影響到動作 2。如以一來, 所得到的結果絕對不是我們想要的答案。 若出現此種程式, 編譯時有時候會出現 "Compound statement missing }" 訊息, 也就是缺少標示右大括號的錯誤。

19 條件算式的設定要合理 不當的條件算式設定會產生無限迴圈, 或者根本未執行到迴圈的內容。所以在設定迴圈的條件式時, 請仔細檢查條件算式的推演結果, 以下是一些條件算式不合理的例子:

20 注意各種迴圈的使用時機 在介紹各種迴圈用法時, 已經討論過各種迴圈的適當使用時機, 在此作一整理, 當您的程式需要:
先判斷再決定是否執行時, 使用 while 迴圈 先執行一次再決定是否繼續時, 使用 do-while 迴圈 準確控制迴圈內容的執行次數, 使用 for 迴圈


Download ppt "Do While 迴圈 東海大學物理系‧資訊教育 施奇廷."

Similar presentations


Ads by Google