Transcript Document

第6章 重複結構
6-1
For…Next迴圈敘述
6-2 While…End While迴圈敘述
6-3
Do…Loop迴圈敘述
6-4
巢狀迴圈敘述
一、For…Next迴圈敘述-1

流程圖
變數 = 初始值
變數超出
終止值?
否(F)
程式區塊
是(T)
變數 = 初始值,
終止值, 增值
程式區塊
Next
變數
控制變數 + 增值
下一行敘述
下一行敘述
一、For…Next迴圈敘述-2

語法:
For 變數 = 初始值 To 終止值 [Step 增值]
程式區塊
[Exit For]
Next [變數]
一、For…Next迴圈敘述-3

例:後宮甄嬛傳劇中經典台詞
Dim i As Integer
For i = 1 To 5 Step 1
MsgBox(“Hi”)
MsgBox(“甄嬛:有時候不爭,比能爭會爭之人有福多了”)
MsgBox(“甄嬛:與其心生敬佩,不如自己便是那樣的人”)
MsgBox(“華妃:賤人就是矯情”)
MsgBox(“華妃:要打壓一個人,就要在她最得意的時候”)
Next
MsgBox(i)
一、For…Next迴圈敘述-4

例:後宮甄嬛傳劇中經典台詞
Dim i As Integer
For i = 1 To 10 Step 2
MsgBox(“Hi”)
MsgBox(“甄嬛:有時候不爭,比能爭會爭之人有福多了”)
MsgBox(“甄嬛:與其心生敬佩,不如自己便是那樣的人”)
MsgBox(“華妃:賤人就是矯情”)
MsgBox(“華妃:要打壓一個人,就要在她最得意的時候”)
Next
MsgBox(i)
一、For…Next迴圈敘述-5

例:計算7 + 7 + 7 + 7 +…… 7(100次)
Dim sum As Integer
For i = 1 To 100
sum = sum + 7
Next
MsgBox(sum)
一、For…Next迴圈敘述-6

例:計算1 + 2 + 3 + 4 +…… 100
Dim sum As Integer
For i = 1 To 100
sum = sum + i
Next
MsgBox(sum)
一、For…Next迴圈敘述-7

例:計算1 + 3 + 5 + 7 + 9
Dim sum As Integer
For i = 1 To 9 Step 2
sum = sum + i
Next
MsgBox(sum)
二、While…End While迴圈敘述-1

流程圖
While
條件式
是(T)
程式區塊
下一行敘述
否(F)
二、While…End While迴圈敘述-2

語法:
While 條件式
程式區塊
[Exit While]
End While
籃球王子的告白
While the girl say ‘NO’
“propose”
End while
改寫FOR to While


For i=1 to 5
s=s+i

Next

Msgbox(s)
統測試題(1)

S=0 : I=0

While (I<10)

S=S+1

End While
統測試題(2)

T=0

S=1

While s<=3

S=S+1

T=T+S*(S-1)

End While

T=T+S
二、While…End While迴圈敘述-3

例:計算2的n次方
Dim n, i, pow As Integer
pow = 1 : i = 1
n = TextBox1.Text
While i <= n
pow = pow * 2
i=i+1
End While
TextBox2.Text = pow
作業

P.224

P.227
三、前測式Do…Loop敘述-1

流程圖
Do While
條件式?
是(T)
否(F)
Do Until
條件式?
否(F)
程式區塊
程式區塊
下一行敘述
下一行敘述
Do While…Loop
Do Until…Loop
是(T)
三、前測式Do…Loop敘述-2

Do While…Loop語法

Do Until…Loop語法
Do While 條件式
程式區塊
[Exit Do]
Do Until 條件式
程式區塊
[Exit Do]
Loop
Loop
三、前測式Do…Loop敘述-3

例:判斷使用者輸入的n是否為質數
n = InputBox("請輸入n值")
i=2
Do While i < n
If n Mod i = 0 Then
MsgBox(n & "不是質數")
End '結束程式
End If
i=i+1
Loop
If n = 1 Then
MsgBox(n & "不是質數")
Else
MsgBox(n & "是質數")
End If
四、後測式Do…Loop敘述-1

流程圖
程式區塊
是(T)
While
條件式?
否(F)
下一行敘述
Do …Loop While
程式區塊
否(F)
Until
條件式?
是(T)
下一行敘述
Do …Loop Until
四、後測式Do…Loop敘述-2

Do …Loop While語法

Do …Loop Until語法
Do
Do
程式區塊
[Exit Do]
Loop While 條件式
程式區塊
[Exit Do]
Loop Until 條件式
四、後測式Do…Loop敘述-3

例:將使用者輸入的成績進行加總,直到
使用者輸入-1時,才顯示總分
Dim sum, n As Integer
Do
sum = sum + n
n = InputBox("請輸入成績:")
Loop While n <> -1
MsgBox("總分為:" & sum)
五、巢狀迴圈敘述-1

巢狀迴圈敘述:迴圈敘述中還有迴圈敘述

例:
外
迴
圈
For i = 0 To 23
For j = 0 To 59
內
迴
TextBox1.Text = i & " 時 " & j & " 分"
圈
Next
Next
五、巢狀迴圈敘述-2

撰寫巢狀迴圈敘述應注意的事項

一個迴圈開頭(如While)必須對應一個迴圈結
尾(如End While)

迴圈之間不可交叉

巢狀For…Next迴圈的變數名稱不可相同

For…Next迴圈的終點如果相同,可以共用一個
Next敘述;Next後的迴圈控制變數,排列順序為
由內至外
作業

P.238

P.247

P.262