第4章 循环结构及其应用
Private Sub Command1_Click() Dim SUM As Single, I As Integer SUM = 0 I=1 Do While I <= 100 SUM = SUM + I I=I+1 Loop Print SUM End Sub
For I = 1 To 100 STEP 1 SUM = SUM + I Next I
4.3 循环结构
计算机最擅长的功能之一:循环
循环:按规定的条件,重复执行某些操作。 循环三要素: (1) 初始化:决定循环的初始状态,即与循环相关的变 量的初始值; (2) 循环体:循环中反复执行的部分; (3) 循环的条件:决定循环结束的条件。
本章目录
2
VB中提供了主要的三种循环结构语句:
for …next (一般已知循环次数);
SUM=SUM+I I=I+1
输出SUM
7
4.3.2 Do…Loop循环语句
形式1: Do { While|Until }<条件> 语句块 形式2: [Exit Do Do 语句块] 语句块 Loop [Exit Do 语句块] Loop { While|Until} <条件>
形式1为先判断后执行,有可能一次也不执行; 形式2为先执行后判断,至少执行一次。
本章目录
8
Do…Loop流程
表达式列表 1 T 语句块 T F 语句块 T
有 Exit Do F 语句块
有 Exit Do F 语句块
T
表达式列表 1 F
Do While…Loop
Do „Loop While
本章目录
9
计算S=1+2+…+100
SUM=0 I=1
SUM=SUM+I I=I+1
.F.
I<=100?
.T.
输出SUM 循环结构流程图
Private Sub Command1_Click() Dim SUM !, I % SUM = 0 I=1 Do SUM = SUM + I I=I+1 Loop While I <= 100 Print SUM End Sub
10
计算S=1+2+…+100
Wend
sum = sum + 1 / i i=i+1
lblResult.Caption = sum
End Sub
循环语句的灵活选择
用循环结构编程,需要问几个问题: 反复执行哪些操作? 循环次数已知? 循环变量、 初值、 终值、 步长?
循环语句的灵活选择
For-Next循环
While-Wend循环 不知道循环次数,当循环条件很容易写出时,宜用 while…wend/do…loop 循环
Do…loop (一般未知循环次数)。
while…wend
(一般未知循语句
For循环语句用于控制循环次数预知的循环结构。 For 循环变量 =初值 To 终值 [Step 步长] 语句块 [Exit For] 语句块 Next 循环变量 循环变量必须为数值型。 循环次数 Int ( 终值 初值 1)
13
程序举例
1.计算S=1*2*…*100
S=1.0 I=1
.F.
I<=100?
.T.
S=S*I I=I+1
输出S
Private Sub Command3_Click() Dim S As Double, I As Integer S=1 I=1 While I <= 100 S=S*I I=I+1 Wend Print S End Sub
找出100__999之间的所有“水仙花数”,打印水仙花总数
实例2:水仙花数
• 1.分析问题
目。
• 测试100——999之间的每一个 数是“水仙花数”吗? • 一个一个测。(海选) 分离三位数各位上的数字 如:153 百位:153\100 十位: (153 Mod 100) \ 10 个位:153 MOD 10
21
求100! Dim I As Integer, S As Double
求1!+2!…+100!
S=1 For I = 1 To 100 S=S*I Next I
Dim I As Integer, S As Double, Sum As Double S= 1 Sum = 0 For I = 1 To 100 S=S*I Sum = Sum + S Next I
知道循环次数,宜用 For...Next 循环
循环语句的灵活选择
输入5个学生成绩,计算平均分 循环体,5次:
输入成绩
score = Val(InputBox("输入成绩"))
累加
sum = sum + score
求平均分
avg = sum / 5
用什么循环?
循环语句的灵活选择
Private Sub Form_Click() Dim i As Integer ,score As Integer Dim sum As Single Dim avg As Single For i = 1 To 5 score = Val(InputBox("输入成绩")) sum = sum + score Next i avg = sum / 5 End Sub
步长
步长
>0 初值<终值 <0 初值>终值 =0 死循环
=1 时,可省略
本章目录
4
for循环语句
循环变量=初值 F
循环变量在终值内 T 语句块 有 Exit For F 语句块
T
循环流程: (1) 循环变量被赋初值,它 仅被赋值一次。 (2) 判断循环变量是否在终 值内?如果是,执行循环体; 如果否,结束循环,执行 Next的下一语句。 (3) 循 环 变 量 加 步 长 , 转 (2),继续循环
循环变量=循环变量+步长
Next 的下一语句
本章目录
5
算法流程图
SUM=0 I=1
1..计算S=1+2…+100
.F.
I<=100?
.T.
SUM=SUM+I I=I+1
输出SUM 循环结构流程图
Private Sub Command1_Click() Dim SUM !, I % SUM = 0 For I = 1 To 100 SUM = SUM + I Next I Print SUM End Sub
水仙花数
Private Sub Command1_Click() Dim I%, A%, B%, C%, K% For I = 100 To 999 A = I \ 100 B = (I Mod 100) \ 10 C = I Mod 10 If I = A ^ 3 + B ^ 3 + C ^ 3 Then K=K+1 Print I End If Next I Print "共有"; K; "个" End Sub
循环语句的灵活选择
输入若干学生成绩,计算平均分,直到某次输入<0的数
据为止
score = Val(InputBox("输入成绩")) 循环条件:score>=0
循环体:
累加: sum = sum + score 输入成绩:score = Val(InputBox("输入成绩")) 求平均分:avg = sum / n
Dim I As Integer, Sum As Integer Sum = 0 For I = 2 To 100 Step 2 Sum = Sum + I Next I
20
求100! Dim I As Integer, S As
Double
I=1
S= For
1 To S=S*I Next I
100
For 循环变量=初值 To 终值 Step 步长 循环体 Next 循环变量
阅读程序,分析程序的输出结果。
Dim x As Integer, y As Integer x = 12: y = 0 Do While x > 0 If x Mod 4 = 0 Then y=y+x 9 12 Else 6 3 y=y-x 3 -3 End If 0 -6 x=x-3 Print x, y Loop
14
程序举例
2.计算S=1!+2!…+100!
S=1.0 T=1.0 I=1
.F.
I<=100?
.T.
T=T*I S=S+T I=I+1
输出S
Private Sub Command4_Click() Dim S As Double, DimT As Double Dim I As Integer S=0 T=1 For I = 1 To 100 T=T*I S=S+T Next I Print S End Sub
计算S=1+2+…+100
SUM=0 I=1
.F.
I<=100?
.T.
SUM=SUM+I I=I+1
输出SUM 循环结构流程图
Private Sub Command1_Click() Dim SUM !, I % SUM = 0 I=1 While I <= 100 SUM = SUM + I I=I+1 Wend Print SUM End Sub