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

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

第 7 課 迴圈與陣列.
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
Introduction to C Programming
計算機程式語言實習課.
第四章 控制结构.
第4章 流程控制結構 4-1 結構化程式設計 4-2 程式區塊 4-3 簡單的條件控制敘述 4-4 巢狀條件敘述 4-5 多選一條件敘述
第8章 迴圈與訊息視窗 [利息計算程式和猜數字遊戲]
实践 课题 周围环境对当代大学生成长的影响 指导老师:王永章 小组成员:陈荣、刘若楠、张红艳、吕雪丹、樊金芳、李惠芬、黄婧
第五章 迴圈結構 授課老師:___________.
四 VBScript编程基础.
Chapter 5 迴圈.
BLANK overview.
Chapter 1 複習.
臺北市立大學 資訊科學系(含碩士班) 賴阿福
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
Do.For.While.正三角.倒正三角.倒九九乘法表
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
算法与程序设计.
SQL Stored Procedure SQL 預存程序.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第7章 程序與函數 7-1 模組化程式設計 7-2 程序與函數 7-3 程序與函數的變數範圍 7-4 常用的內建函數 7-5 遞迴函數.
第2章 Visual Basic語法的ASP.NET程式
第12章 VBA模块设计.
第3 章 VBScript的控制结构.
第5章 Visual Basic控制结构 之 常用算法举例
第六章 迴 圈 結 構 課程名稱:程式設計 授課老師:李春雄 博士 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」,
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
第一單元 建立java 程式.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
江西财经大学信息管理学院 《数据库应用》课程组2007
第 19 章 XML記憶體執行模式.
小结 郭清溥.
经典算法之 冒 泡 排 序.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
打地鼠(陣列版).
第二章、第三章错题分析.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
CH05. 選擇敘述.
期末考.
第6章 運算式與運算子 [算術與多功能計算機]
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
程式語言與邏輯 結構化程式設計:迴圈控制 報告人:國立台灣師大附中 李啟龍 老師 學年度資訊科技概論研習.
迴圈(重複性結構) for while do while.
算法与Visual Basic程序基础(二)
網頁設計第十二課.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Develop and Build Drives by Visual C++ IDE
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

第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迴圈 ViLLE – 3.1 For/Next迴圈敘述 6-1-2 For Step/Next迴圈

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

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

6-1-1 For To/Next迴圈-流程圖 For counter = 6 To 16 sum = sum + counter A B For counter = 6 To 16 sum = sum + counter Next counter 請啟動fChart,載入第6-1-1節的流程圖專案Ch6-1-1.fpp ,然後執行流程圖,(1) 請問流程圖的迴圈經過路徑A或B的順序為下列哪一個? BBBBBBBBBBBA AAAAAAAAAAAB (2) 當counter的值為何時結束程式的執行? 自己動手作作看

6-1-1 For To/Next迴圈- Visual Basic專案 Visual Basic專案:Ch6-1-1 在Windows應用程式輸入開始和終止值,可以計算從開始值加到終止值的總和,如下圖所示:

ViLLE – 3.1 For/Next迴圈敘述 請啟動ViLLE,在【三. 迴圈結構】目錄下,選【1. For/Next迴圈敘述】,按【Run】鈕模擬執行此範例程式,如下圖所示:

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

6-1-2 For Step/Next迴圈- Visual Basic專案 Visual Basic專案:Ch6-1-2 在Windows應用程式輸入Step值來計算1到100或100到1中,每隔Step值的數值總和,如下圖所示:

6-2 條件迴圈 6-2-1 Do While/Loop迴圈 6-2-2 Do Until/Loop迴圈 ViLLE – 3.2 Do While/Loop迴圈敘述 6-2-2 Do Until/Loop迴圈 6-2-3 Do/Loop While迴圈 ViLLE – 3.4 Do/Loop While迴圈敘述 6-2-4 Do/Loop Until迴圈

6-2 條件迴圈-前測式重複結構 Visual Basic條件迴圈結構是Do/Loop迴圈,屬於Visual Basic十分重要且變化最多的迴圈結構,以條件測試的位置分成兩種,如下所示: 前測式重複結構:在迴圈開始使用While或Until測試迴圈條件。其語法如下所示: Do [While | Until] 條件 程式區塊 Loop

6-2 條件迴圈-後測式重複結構 後測式重複結構:在迴圈結尾使用While或Until測試迴圈條件,因為是在結尾測試條件,所以迴圈至少執行一次。其語法如下所示: Do 程式區塊 Loop [While | Until] 條件

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

6-2-1 Do While/Loop迴圈-流程圖 A B Do While year <= 5 year = year + 1 Loop 請啟動fChart,載入第6-2-1節的流程圖專案Ch6-2-1.fpp ,然後執行流程圖,(1) 請問流程圖的迴圈經過路徑A或B的順序為下列哪一個? BBBBBA AAAAAB (2) 當year的值為何時結束程式的執行? 自己動手作作看

ViLLE – 3.2 Do While/Loop迴圈敘述 請啟動ViLLE,在【三. 迴圈結構】目錄下,選【2. Do While/Loop迴圈敘述】,按【Run】鈕模擬執行此範例程式,如下圖所示:

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

6-2-2 Do Until/Loop迴圈-流程圖 A B Do Until year > 5 year = year + 1 Loop 請啟動fChart,載入第6-2-2節的流程圖專案Ch6-2-2.fpp ,然後執行流程圖,(1) 請問流程圖的迴圈經過路徑A或B的順序為下列哪一個? BBBBBA AAAAAB (2) 當條件為True或False時進入迴圈? 自己動手作作看

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

6-2-3 Do/Loop While迴圈-流程圖 A B Do year = year + 1 Loop While year <= 5 請啟動fChart,載入第6-2-3節的流程圖專案Ch6-2-3.fpp ,然後執行流程圖,(1) 請問流程圖的迴圈經過路徑A或B的順序為下列哪一個? BBBBBA AAAAAB (2) 當year的值為何時結束程式的執行? 自己動手作作看

ViLLE – 3.4 Do/Loop While迴圈敘述 請啟動ViLLE,在【三. 迴圈結構】目錄下,選【4. Do/Loop While迴圈敘述】,按【Run】鈕模擬執行此範例程式,如下圖所示:

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

6-2-4 Do/Loop Until迴圈-流程圖 A B Do year = year + 1 Loop Until year > 5 請啟動fChart,載入第6-2-4節的流程圖專案Ch6-2-4.fpp ,然後執行流程圖,(1) 請問流程圖的迴圈經過路徑A或B的順序為下列哪一個? BBBBBA AAAAAB (2) 當條件為True或False時進入迴圈? 自己動手作作看

6-2 條件迴圈-Visual Basic專案 Visual Basic專案:Ch6-2 在Windows應用程式輸入本金、利率和年限後,選擇使用的迴圈種類,即可計算到此年限複利的本利總和,如下圖所示:

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

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

6-3-1 For/Next巢狀迴圈-執行次數 巢狀迴圈共有兩層,在第1層的For/Next迴圈執行9次,第二層For/Next迴圈如果都執行9次,兩層迴圈總共可執行81次,如下表所示: 第一層的first值 第二層的second值 離開迴圈的first值 1 2 3 4 5 6 7 8 9 ………….

6-3-1 For/Next巢狀迴圈- Visual Basic專案 Visual Basic專案:Ch6-3-1 在Windows應用程式的每1列顯示不同數字,以便繪出三角形、倒三角形和正三角形的圖形,如下圖所示:

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

6-3-2 混合的巢狀迴圈- Visual Basic專案 Visual Basic專案:Ch6-3-2 在Windows應用程式使用巢狀迴圈在多行文字方塊,以表格排列來顯示九九乘法表,如下圖所示:

6-4 While/End While迴圈-說明 While/End While迴圈源於舊版VB6的While/Wend迴圈,這也是一種在迴圈開頭檢查的迴圈,其結構和Do While/Loop迴圈結構相同。 在本節的程式範例準備說明迴圈在數學運算的運用,我們可以使用迴圈計算階層函數的值,階層函數N!,如下所示:

6-4 While/End While迴圈-階層函數 例如:準備計算4!的值,從上述定義N>0,可以使用N!定義的第二條計算階層函數4!的值,如下所示: 4!=4*3*2*1=24

6-4 While/End While迴圈-階層函數的迴圈 Dim result As Integer = 1 Dim maxLevel As Integer = 5 While n <= maxLevel result *= n n += 1 End While

6-4 While/End While迴圈- Visual Basic專案 Visual Basic專案:Ch6-4 在Windows應用程式輸入階層數,就可以計算階層函數值和顯示從1到階層數的各階層函數值。例如:輸入4就依序計算1!、2!、3!和4!階層的值,運算方向是相反是由1乘到階層數,如下所示: 4!=1*2*3*4=24

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

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

6-5-1 Exit For跳出迴圈- Visual Basic專案 Visual Basic專案:Ch6-5-1 在Windows應用程式建立換零錢的工具程式,輸入金額和選擇想兌換的硬幣種類,例如:50、20、10、5和1元硬幣,就可以自動計算出可兌換成幾個50硬幣或幾個20元硬幣等,如下圖所示:

6-5-2 Exit Do跳出迴圈-說明 對於Do/Loop迴圈來說,如果沒有使用While或Until在迴圈頭尾測試條件,單純的Do/Loop迴圈是一個無窮迴圈。此時,我們可以使用Exit Do跳出迴圈,也就是結束迴圈的執行,如下所示: Do …. If str = "" Then Exit Do End If Loop

6-5-2 Exit Do跳出迴圈- Visual Basic專案 Visual Basic專案:Ch6-5-2 在Windows應用程式建立猜數字遊戲,使用亂數取得1~100間的數值,當使用者在InputBox對話方塊輸入數字後,就會回應猜測數字太大或太小,直到使用者猜到數字為止,如下圖所示:

6-5-3 Continue繼續迴圈-說明 Continue關鍵字可以讓我們不用執行完整個迴圈的程式碼,就可以馬上執行下一次迴圈。 Continue For可以馬上執行下一次For/Next迴圈;Continue Do繼續下一次Do While/Loop迴圈的執行。

6-5-3 Continue繼續迴圈-範例 例如:計算指定範圍的奇數和,如下所示: Do While num < maxValue num = num + 1 If num Mod 2 = 0 Then Continue Do End If sum = sum + num Loop

6-5-3 Continue繼續迴圈- Visual Basic專案 Visual Basic專案:Ch6-5-3 在Windows應用程式輸入最大值,可以計算從1至此最大值的奇數和,如下圖所示:

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

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

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

6-6 錯誤處理- Visual Basic專案 Visual Basic專案:Ch6-6 在Windows應用程式建立Try/End Try錯誤處理敘述,可以處理除以0造成溢位的程式錯誤,如下圖所示:

End