1 / 29

第 6 章 迴圈結構

第 6 章 迴圈結構. 6-1 計數迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-5 跳出與繼續迴圈 6-6 錯誤處理. 6-1 計數迴圈. 6-1-1 For To/Next 迴圈 6-1-2 For Step/Next 迴圈. 6-1-1 For To/Next 迴圈 - 語法. For To/Next 迴圈可以執行固定次數的迴圈,預設每次增加 1 ,如果到達結束條件,就結束迴圈執行。其語法如下所示: For 變數 = 起始值 To 終止值 程式區塊 Next 變數

anais
Download Presentation

第 6 章 迴圈結構

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 迴圈結構 • 6-1 計數迴圈 • 6-2 條件迴圈 • 6-3 巢狀迴圈 • 6-4 While/End While迴圈 • 6-5 跳出與繼續迴圈 • 6-6 錯誤處理

  2. 6-1 計數迴圈 • 6-1-1 For To/Next迴圈 • 6-1-2 For Step/Next迴圈

  3. 6-1-1 For To/Next迴圈-語法 • For To/Next迴圈可以執行固定次數的迴圈,預設每次增加1,如果到達結束條件,就結束迴圈執行。其語法如下所示: For 變數 = 起始值 To 終止值 程式區塊 Next 變數 • 上述迴圈的「變數」是計數器變數,其範圍是從「起始值」到「終止值」,每次增加1,執行迴圈的次數是:「終止值」-「起始值」+1次,其中Next關鍵字後的「變數」可以省略。

  4. 6-1-1 For To/Next迴圈-語法 • 例如:計算6加到15總和的迴圈,如下所示: Dim intI, intTotal As Integer For intI = 6 To 15 intTotal = intTotal + intI Next intI • 上述程式碼是從6加到15以計算總和,變數intI值依序為6、7、8、9、..和15,總共執行15-6+1共10次迴圈。

  5. 6-1-1 For To/Next迴圈-流程圖

  6. 6-1-2 For Step/Next迴圈 • For/Next迴圈的增量如果不是1,我們可以使用Step關鍵字指定每次增加或減少的量。如果使用負數值,表示每次是將計數器變數減掉Step值,此時For Step/Next迴圈,如下所示: For intI = 100 To 1 Step -1 intTotal = intTotal + intI Next intI • 上述程式碼倒過來從100加到1,變數intI值依序100、99、98、97、…、3、2、1共執行100次迴圈,其流程圖和上一節圖例相似,只是每次增加量改為-1。

  7. 6-2 條件迴圈 • 6-2-1 Do While/Loop迴圈 • 6-2-2 Do Until/Loop迴圈 • 6-2-3 Do/Loop While迴圈 • 6-2-4 Do/Loop Until迴圈

  8. 6-2-1 Do While/Loop迴圈-說明 • Do/Loop迴圈可以使用While條件在迴圈開頭檢查,開頭檢查的目的是檢查是否允許進入迴圈,當While的測試條件成立才能進入迴圈。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do While intI <= 5 dblTotal += dblTotal * dblRate intI = intI + 1 Loop

  9. 6-2-1 Do While/Loop迴圈-流程圖

  10. 6-2-2 Do Until/Loop迴圈-說明 • Do/Loop迴圈如果使用Until條件在迴圈開始檢查,迴圈是執行到條件成立為止,如果條件不成立就進入迴圈。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do Until intI > 5 dblTotal += dblTotal * dblRate intI = intI + 1 Loop

  11. 6-2-2 Do Until/Loop迴圈-流程圖

  12. 6-2-3 Do/Loop While迴圈-說明 • Do/Loop迴圈可以使用While條件在迴圈結尾檢查,此時Do/Loop迴圈至少會執行一次。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do dblTotal += dblTotal * dblRate intI = intI + 1 Loop While intI <= 5

  13. 6-2-3 Do/Loop While迴圈-流程圖

  14. 6-2-4 Do/Loop Until迴圈-說明 • Do/Loop迴圈如果使用Until條件在迴圈結尾檢查,迴圈也一樣至少執行一次。例如:計算1萬元5年複利18%的本利和,如下所示: intI = 1 dblTotal = 10000 dblRate = 0.18 Do dblTotal += dblTotal * dblRate intI = intI + 1 Loop Until intI > 5

  15. 6-2-4 Do/Loop Until迴圈-流程圖

  16. 6-3 巢狀迴圈 • 6-3-1 For/Next巢狀迴圈 • 6-3-2 混合的巢狀迴圈

  17. 6-3-1 For/Next巢狀迴圈-說明 • For/Next巢狀迴圈是在For/Next迴圈中,擁有其他For/Next迴圈(因為不用自行處理計數器變數),例如:二層巢狀迴圈,如下所示: ' 第一層 For intI = 1 To 9 ' 第二層 For intJ = 1 To 9 ……… Next intJ ……… Next intI

  18. 6-3-1 For/Next巢狀迴圈-執行次數 • 巢狀迴圈共有兩層,在第1層的For/Next迴圈執行9次,第二層For/Next迴圈如果都執行9次,兩層迴圈總共可執行81次,如下表所示:

  19. 6-3-2 混合的巢狀迴圈 • Visual Basic巢狀迴圈可以混合For/Next和Do/Loop迴圈結構,例如:在For/Next迴圈內擁有Do/Loop Until迴圈,如下所示: ‘ 第一層 For intI = 1 To 9 ' 第二層 intJ = 1 Do …………… intJ += 1 Loop Until intJ > 9 Next intI

  20. 6-4 While/End While迴圈-說明 • While/End While迴圈源於舊版VB6的While/Wend迴圈,它是一種在迴圈開頭檢查的迴圈,例如:從1加到10的程式碼,如下所示: Dim total As Integer = 0 Dim counter As Integer = 1 While counter <= 10 total += counter counter += 1 End While

  21. 6-4 While/End While迴圈-階層函數 • 在本節的範例程式是說明迴圈在數學運算的運用,可以計算階層函數的值,階層函數N!,例如:準備計算4!的值,從上述定義N>0,可以使用N!定義的第二條計算階層函數4!的值,如下所示: 4!=4*3*2*1=24

  22. 6-4 While/End While迴圈-階層函數的迴圈 • 換句話說,我們可以使用迴圈來計算階層函數的值,以While/End While迴圈為例,如下所示: Dim total As Integer = 1 Dim counter As Integer = 4 While counter >= 1 total *= counter counter = counter - 1 End While

  23. 6-5 跳出與繼續迴圈 • 6-5-1 Exit For跳出迴圈 • 6-5-2 Exit Do跳出迴圈 • 6-5-3 Continue繼續迴圈

  24. 6-5-1 Exit For跳出迴圈 • For/Next迴圈如果尚來到達結束條件時,就可以使用Exit For強迫跳出For/Next迴圈,馬上結束迴圈的執行,如下所示: For intI = 1 To 100 Step 1 … If amount <= 0 Then Exit For End If … Next

  25. 6-5-2 Exit Do跳出迴圈 • 對於Do/Loop迴圈來說,我們需要自行確認迴圈能夠結束。換句話說,如果沒有使用While或Until在迴圈頭尾測試條件,單純Do/Loop迴圈是一個無窮迴圈。 • 如果Do/Loop迴圈沒有不指定終止條件,我們可以使用Exit Do來結束迴圈,如下所示: Do …. If str = "" Then Exit Do End If …. Loop

  26. 6-5-3 Continue繼續迴圈 • Visual Basic 2005新增Continue關鍵字,可以讓我們不用執行完整個迴圈的程式碼,就可以馬上執行下一次迴圈。Continue For可以馬上執行下一次For/Next迴圈;Continue Do繼續下一次Do While/Loop迴圈的執行。例如:計算指定範圍的奇數和,如下所示: Do While i < intMax i = i + 1 If i Mod 2 = 0 Then Continue Do End If total = total + i Loop

  27. 6-6 錯誤處理-說明 • 錯誤處理是指在程式執行時,如果發生不正常執行狀態時,我們可以在程式碼處理這些錯誤。錯誤處理的目的是為了讓程式能夠更「強壯」(Robust)。 • 當程式遇到不尋常情況,也不會造成程式「崩潰」(Crashing),進而導致整個系統當機的情況。

  28. 6-6 錯誤處理-架構 • Visual Basic 2005提供結構化的錯誤處理敘述,即Try/End Try,其語法如下所示: Try ' 測試的錯誤程式碼 程式區塊 Catch e As Exception ' 錯誤處理的程式碼 程式區塊 Finally 程式區塊 End Try

  29. 6-6 錯誤處理-架構說明 • Try程式區塊:在Try和Catch關鍵字間的程式區塊是Visual Basic需要執行錯誤處理的程式碼,也就是預期可能產生錯誤的程式碼。 • Catch程式區塊:如果Try程式區塊的程式碼發生錯誤,在Catch到Finally關鍵字間的程式區塊將會傳入參數e的Exception例外物件,可以在此區塊顯示錯誤資訊,或是建立錯誤處理的補救程式碼。 • Finally程式區塊:選擇性的程式區塊,不論錯誤是否產生,都會執行此區塊的程式碼,通常是用來作為善後用途的程式碼。

More Related