程式語言I – VISUAL BASIC 8

Download Report

Transcript 程式語言I – VISUAL BASIC 8

8-1
8-2
8-3
程式語言 I – VISUAL BASIC
Chapter 8
認知
 了解何謂計數迴圈、巢狀迴圈及條件迴圈,並能知道
運用於設計程式的時機。
 能分辨何謂前測式迴圈和後測式迴圈。
技能
 會使用VB的For-Next、While-Wend及Do-Loop來設計
程式。
8-1 計數迴圈
 For-Next迴圈敘述
[格式]
 For 計數變數 = 起始值 To 終止值 〔Step 增減值〕
[敘述...]
Next〔計數變數〕
[說明]
 迴圈執行的步驟如下:
1. 先將計數變數設定為起始值。
2. 執行迴圈內的敘述。
3. 執行到「Next 計數變數」這一列時,將計數變數加上
增減值。
程式語言 I – VISUAL BASIC
8-2
接續上一頁
4. 回到「For 計數變數 = 起始值 To 終止值 〔Step增減
值〕」這一列,檢查計數變數是否在起始值與終止值
間,若是則繼續執行迴圈內的敘述;若不是則繼續執
行「Next 計數變數」的下一列敘述。



計數變數必須是數值變數,否則會出現“型態不
符”的錯誤訊息;起始值、終止值和增減值則可
以是數值常數或是數值變數,不過如果是整數的
話,執行的速度會較快。
若增值為1,則step 1可以省略。
若增值為正,則終值必須大於或等於初值,相反
的若增值為負,則終值必須小於或等於初值。
程式語言 I – VISUAL BASIC
8-3
接續上一頁



執行迴圈內的敘述可以是單一敘述或是多重敘述。
Next〔計數變數〕這一列中的計數變數要和For
後面的計數變數名稱一樣;Next後面的計數變數
名稱可以省略,但並不鼓勵如此使用。
若要強迫跳出For…Next迴圈可用Goto指令,亦
可用Exit For指令。
程式語言 I – VISUAL BASIC
8-4
接續上一頁
[流程圖]
計數變數 = 起始值
否
計數變數 <= 終止值
是
執行敘述
計數變數 =
計數變數 + 增減值
程式語言 I – VISUAL BASIC
8-5
8-2 條件迴圈的觀念介紹
前測式迴圈
前測式迴圈要執行迴圈前,先測試條件是否成
立,若條件成立才執行迴圈,否則直接跳過迴
圈。
程式語言 I – VISUAL BASIC
8-6
接續上一頁
[流程圖]
While (Do While)
條件
偽
真
執行敘述
Wend (Loop)
程式語言 I – VISUAL BASIC
8-7
While-Wend迴圈敘述
[格式]
 While 條件
〔敘述...〕
Wend
[功能]
 根據條件值,重複執行某些敘述。
[說明]
 迴圈執行的步驟如下:
1.先判斷條件值。
程式語言 I – VISUAL BASIC
8-8
接續上一頁
2. 若條件值「成立」,則執行迴圈內的敘述;若條件
「不成立」則結束While-Wend 迴圈,繼續執行Wend
的下一列。
3. 執行到Wend 這一列時,回到「While 條件」這一列,
重複step1。



While-Wend必須成對出現,否則會出現“While
without Wend”的錯誤訊息,表示找不到該列號中
While的搭檔Wend。
執行迴圈內的敘述可以是單一敘述或是多重敘述。
迴圈中必須要有改變條件值的敘述,否則會造成
無窮迴圈。
程式語言 I – VISUAL BASIC
8-9
Do While-Loop迴圈敘述
[格式]
 Do While 條件
[敘述.…]
[Exit Do]
:
Loop
[功能]
 根據條件值,重複執行某些敘述。
程式語言 I – VISUAL BASIC
8-10
接續上一頁
[說明]
 執行迴圈內的敘述可以是單一敘述或是多重敘述。
 迴圈中必須要有改變條件值的敘述,否則會造成
無窮迴圈。
 若執行到Exit Do則會跳出該迴圈;繼續執行Loop
的下一列。
程式語言 I – VISUAL BASIC
8-11
Do Until-Loop迴圈敘述
[格式]
 Do Until 條件
〔敘述...〕
[Exit Do]
:
Loop
[功能]
 根據條件值,當條件「不成立」時,重複執行某
些敘述。
程式語言 I – VISUAL BASIC
8-12
接續上一頁
[說明]
 迴圈執行的步驟如下:
1. 先判斷條件值。
2. 若條件值為「不成立」,則執行迴圈內的敘述;若條
件「成立」則結束Do Until -Loop 迴圈,繼續執行
Loop的下一列。
3. 執行到Loop這一列時,會回到「Do Until 條件」這一
列,重複step1。


Do Until -Loop必須成對出現,否則會出現錯誤
訊息。
執行迴圈內的敘述可以是單一敘述或是多重敘述。
程式語言 I – VISUAL BASIC
8-13
接續上一頁


迴圈中必須要有改變條件值的敘述,否則會造成
無窮迴圈。
若執行到Exit Do則會跳出該迴圈;繼續執行
Loop的下一列。
程式語言 I – VISUAL BASIC
8-14
接續上一頁
[流程圖]
Do Until
成立
條件
不成立
執行敘述
Loop
程式語言 I – VISUAL BASIC
8-15
後測式迴圈
後測式迴圈是程式執行完迴圈後,才測試條件
是否成立,若條件成立(Do-Loop Until剛好相
反)則繼續執行迴圈,否則跳離迴圈。
程式語言 I – VISUAL BASIC
8-16
Do- Loop While敘述
[格式]
 Do
〔敘述...〕
[Exit Do]
:
Loop While 條件
[功能]
 根據條件值,重複執行某些敘述。
程式語言 I – VISUAL BASIC
8-17
接續上一頁
[說明]
 迴圈執行的步驟如下:
1. 先執行迴圈內的敘述。
2. 執行到「Loop While 條件」這一列時判斷條件值,若
條件值「成立」,則回到「Do」這一列,重複step1;
若條件「不成立」則結束Do .. Loop While迴圈,繼續
執行「Loop While 條件」的下一列。


Do-Loop While必須成對出現,否則會出現錯誤
訊息。
執行迴圈內的敘述可以是單一敘述或是多重敘述。
程式語言 I – VISUAL BASIC
8-18
接續上一頁
 迴圈中必須要有改變條件值的敘述,否則會造成
無窮迴圈。
 若執行到Exit Do則會跳出該迴圈;繼續執行
「Loop While 條件」的下一列。
程式語言 I – VISUAL BASIC
8-19
接續上一頁
[流程圖]
Do
執行敘述
是
Loop While
條件
否
程式語言 I – VISUAL BASIC
8-20
Do- Loop Until敘述
[格式]
 Do
〔敘述...〕
[Exit Do]
:
Loop Until 條件
[功能]
 根據條件值,當條件「不成立」時,重複執行某
些敘述。
程式語言 I – VISUAL BASIC
8-21
接續上一頁
[說明]

迴圈執行的步驟如下:
1. 先執行迴圈內的敘述。
2. 執行到「Loop Until 條件」這一列時判斷條件值,若
條件值「不成立」,則回到Do這一列,重複step1;若
條件「成立」則結束Do .. Loop Until 迴圈,繼續執行
「Loop Until 條件」的下一列。

Do-Loop Until必須成對出現,否則會出現錯誤訊
息。

執行迴圈內的敘述可以是單一敘述或是多重敘述。
程式語言 I – VISUAL BASIC
8-22
接續上一頁
 迴圈中必須要有改變條件值的敘述,否則會造成
無窮迴圈。
 若執行到Exit Do則會跳出該迴圈;繼續執行
「Loop Until 條件」的下一列。
程式語言 I – VISUAL BASIC
8-23
接續上一頁
[流程圖]
Do
執行敘述
否
Loop Until
條件
是
程式語言 I – VISUAL BASIC
8-24
8-3 巢狀迴圈
迴圈中可以執行一個或多個敘述,當然也可以
包含一個或多個迴圈,像這種迴圈中又包含其
他迴圈的結構稱為「巢狀迴圈」或稱為「多層
式迴圈」。
程式語言 I – VISUAL BASIC
8-25
撰寫巢狀迴圈的注意事項:
 外層迴圈必須要完全包住內層迴圈,不可以有迴
圈結構交叉的情況出現。習慣上,我們在看程式
時會將迴圈的開始和結束用“﹝”形狀的線條將其
連接以表示其所涵蓋的範圍。
 巢狀迴圈中,若使用For-Next敘述,每層的計數變
數名稱不可相同。
 對某層迴圈路而言,可以用“Goto列號(標籤)”或
“If-Then列號(標籤)”的方式跳出迴圈,但是不可
以此方式自迴圈外跳入迴圈內。
程式語言 I – VISUAL BASIC
8-26
正確的巢狀迴圈架構
雙層迴圈架構
程式語言 I – VISUAL BASIC
8-27
三層迴圈架構
程式語言 I – VISUAL BASIC
8-28
跳出內迴圈,但仍在外迴圈中
程式語言 I – VISUAL BASIC
8-29
跳出整個巢狀迴圈
程式語言 I – VISUAL BASIC
8-30
錯誤的巢狀迴圈架構
迴圈交叉錯誤
程式語言 I – VISUAL BASIC
8-31
自內迴圈外,跳入內迴圈中
程式語言 I – VISUAL BASIC
8-32