VB程序循环结构、列表框和组合框-文档资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环变量 = 初值

循环变量 ≥ 终值 ?



执行循环体

N
循环变量 = 循环变量 + 步长
Y Y
循环变量 ≤ 终值 ?
执行循环体
N
循环变量 = 循环变量 + 步长
步长为负
步长为正
4
注意事项:
(1)“循环变量” 必须为数值型;
(2)“初值”、“终值”为数值表达式,若值不是整
数,系统会自动取整;
(3)“步长”为数值表达式,可为正数,也可为负数,
End Sub
33
Private Sub Form_Click() Dim e As Double Dim i As Integer Dim fact As Double 按Di下m列re公su式lt计A算s :Long e = 0: i = 1: fact = 1: result = 1 eD=o1+1/1!+1/2!+1/3!+…+1/n!+… 使1fea/=cnt!e=小+1于f/a0c.rt0e0s0u0lt01 result = result * i i=i+1 Loop While fact > 0.000001 Label1.Caption = Val(e)
s=s+n
End If
n=n+1
Loop While n <= 100
NumLabel.Caption = t
SumLabel.Caption = s
End Sub
32
Private Sub ComputeCmd _Click()
Dim n As Integer, s As Integer
Dim t As String
Dim n As Integer ,s As Integer
n=1 s=0 Do Until n>1=010 0 s=s+n n=n+1 Loop Print s
27
5、Do …Loop Until语句
具体格式: Do <循环体> [Exit Do]
Loop Until <条件表达式>
28
首先执行一次循环体内 的语句,执行到Loop Until 语句时,判断条 件表达式的值是否为 False。若为False,则 返回到循环体的开始语 句,再次执行循环体, 这样一直到条件表达式 的值为True时才退出循 环。
首先判断条件表达式的
值是否为False。若是
False,则执行循环体,
当执行到Loop语句时, 返回到Do Until语句,
条件为真?
继续判断条件表达式的
N
值是否为False;若是
True,则退出循环,执 行Loop后面的语句。如
执行循环体 Y
此反复执行,直到条件
表达式的值为True才退
出循环。 25
n=n+1 Loop Print n
程序段2: Dim n As Integer
n=1 Do
n=n+1 Loop While n<1 Print n
输出结果为:1
输出结果为:2
23
4、Do Until…Loop语句
具体格式: Do Until <条件表达> <循环体> [Exit Do]
Loop
24
End Sub
34
S=1*(1+2)*(1+2+3)*…*(1+2+3+…+n) 编程求S不大于20000时最大的n值
35
Private Sub Form_Click()
Dim sum As Long
Dim s As Long
Dim n As Integer
sum = 0: s = 1: n = 0
若值不是整数,系统会自动取整;分步长大于0、步长
小于0、步长等于0这几种情况。步长等于1时,可省略

Step子句;
例如:
For i=10 To 1 Step 1
Print i Next i
×
5
(4)循环次数的计算公式:
循环次数=Int((终值-初值)/步长+1),
若所得为负数,则取循环次数=0。
(5)循环必须遵循“先检查、后执行”的原则。
执行循环体 Y
必须存在改 变条件表达
式的语句
条件为真?
N
21
区别:Do While...Loop循环先测试条件是否 成立;Do...Loop While循环先执行一次循环 体。
条件为真?
Y
执行循环体
N
执行循环体
Y
条件为真?
N
22
例如: 程序段1: Dim n As Integer
n=1 Do While n<1
37
注意事项:
(1) 对于For…Next的循环嵌套,在每层循环中的 控制变量要使用不同的变量名。
s=s+i i=i+1
Next i
执行几次? 5次
6
例题:
1、单击窗体时,在窗体上打印输出5个“@_@”符 号。
7
程序代码如下:
Private Sub Form_Click() For i = 1 To 5 Print "@_@" Next i
End Sub
‘ 循环体
8
2、通过循环变量的变化在窗体上输出彩色字, 程序运行界面如图所示。
Do
n=n+1
sum = sum + n
s = s * sum
Loop Until s > 20000
Label3.Caption = Val(n - 1)
End Sub
36
5.2 循环嵌套
定义:在一个循环体中含有另一个循环结构,这就 构成了循环的嵌套。以上几节介绍的循环语句都可 以实现循环嵌套。两层的循环嵌套,称为二重循环, 三层以上的循环嵌套,称为多重循环。
(6)Exit For语句。该语句允许在循环体内出现一次或
多次。
(7)Next后面的循环变量与For语句中的循环变量必须 相同,且两者必须成对出现。
(8)在For循环体中改变循环控制变量的值,将会影响 循环次数。
例如: Dim s As Integer,i As Integer
For i=1 To 10
第五章 循环结构、列表 框和组合框
5.1 循环语句 5.2 循环嵌套 5.3 列表框和组合框
1
5.1 循环语句
5.1.1 For…Next结构
具体格式:
For 循环变量=初值 To 终值 [Step 步长] <语句序列> [Exit For]
Next 循环变量
2
基本步骤:
(1)计算初值、终值及步长表达式的值,并将初值
例如:求s=1+2+3+…+100的值。
方法1:用Do While…Loop语句实现的:
Dim n As Integer ,s As Integer n=1 s=0
Do While n<1=010 0 s=s+n n=n+1
Loop Print s
26
方法2:用Do Until…Loop语句实现的:
9
i= 1
i ≤ 2000 ?
Y
green = Int ( 255 * Rnd + 1 )
blue = Int ( 255 * Rnd + 1 )
CurrentX = 500 + i
CurrentY = 500 + i
N
ForeColor
= RGB ( i , green , blue )
Print " 欢迎来到 VB 世界 "
Loop
其中,Exit Do语句是可选语句,它提供一种 退出Do循环的方法,并且只能在Do循环中使用, 可以在循环体任何位置放置任意多个Exit Do语句。 根据所在位置,确定要退出的循环。
15
Dim n As Integer n=0 Do n=n+1 If n>=10 Then Exit Do End If Loop
i = i + 200
10
Private Sub Form_Click() Dim i As Integer, green As Integer,
blue As Integer Randomize Timer For i = 1 To 2000 Step 200 green = Int(255 * Rnd + 1) blue = Int(255 * Rnd + 1) CurrentX = 500 + i CurrentY = 500 + i ForeColor = RGB(i, green, blue) Print "欢迎来到VB世界" Next i
程序运行时,循环体语句n=n+1被重复执行10次 后,因执行语句If n>=10 Then Exit Do End If时,满足条件n>=10,退出循环。
16
2、Do While…Loop语句
具体格式: Do While<条件表达式> <循环体> [Exit Do]
Loop
17
首先判断条件表达式的
31
Private Sub ComputeCmd _Click()
Dim n As Integer, s As Integer
Dim t As String
n = 1:s = 0:t = ""
Do
If n Mod 3 = 0 And n Mod 7 = 0 Then
t = t & Str(n)
t = t & ","
执行循环体 N
条件为真? Y
29
例【5-6】:编写程序在标签中显示1~100之 间既能被3整除又能被7整除的整数,并计算它 们的和。要求用Do…Loop While和Do…Loop Until两种语句分别编写循环体部分。
30
编程思路:程序的循环次数是确定的,即从1到100。 对于用Do…Loop While语句编写循环体部分,While 后的条件表达式是满足条件执行循环,所以条件表达 式是“n <= 100” ;对于用Do…Loop Until语句编写 循环体部分,Until后的条件表达式是满足条件将退 出循环,所以条件表达式是“n >100”。
End Sub 11
编写程序找出100~999之间的所有“水仙花 数”。所谓“水仙花数”是指一个三位数,其 各位数字的立方和等于该数本身。
12
Private Sub Form_Click() Dim x As Integer Dim y As Integer Dim z As Integer For i = 100 To 999 x = i \ 100 y = (i - x * 100) \ 10 z = i - x * 100 - y * 10 If x ^ 3 + y ^ 3 + z ^ 3 = i Then Text1.Text = Text1.Text & " " & CStr(i) End If Next i
值是否为True。若为 True,则执行循环体中 的语句,当执行到Loop 语句时,返回到Do While语句,继续判断条 件表达式的值是否为
True ;若为False,则 N 退出循环,执行Loop后 面的语句。如此反复执
行,直到条件表达式的
值为False才退出循环。
条件为真?
Y 执行循环体
必须存在改 变条件表达
19
3、Do …Loop While语句
具体格式: Do <循环体> [Exit Do]
Loop While<条件表达式>
20
首先执行一次循环体 内的语句,执行到 Loop while语句时,判 断条件表达式的值是 否为True。若为True, 则返回到循环体的开 始语句,再次执行循 环体,这样一直到条 件表达式的值为False 时才退出循环。
赋给循环变量;
(2)判断循环变量的值是否“超过”终值:
当步长为正时,“超过”是指循环变量的值>终值;
当步长为负时,“超过”是指循环变量的值<终值;
若“超过”时,退出循环,转到Next语句的下一语
句;
(3)执行循环体中的语句;
(4)执行Next语句,循环变量增加一个步长;
(5)返回第(2)步。
3
循环变量 = 初值
n = 1:s = 0:t = ""
Do
If n Mod 3 = 0 And n Mod 7 = 0 Then
t = t & Str(n)
t = t & ","
s=s+n
End If
n=n+1
Loop Until n > 100
NumLabel.Caption = t
SumLabel.Caption = s
End Sub
13
5.1.2 Do…Loop结构
1、Do…Loop语句 2、Do While…Loop语句 3、Do…Loop While语句 4、Do Until…Loop语句 5、Do…Loop Until语句
14
1、Do…Loop语句
要有退出循环 的语句
具体格式: Do <循环体> [Exit Do]
式的语句
18
注意事项:
① Do、Loop、While都是关键字,Do While和 Loop应成对出现; ② 条件表达式为关系或逻辑型,若为数值型,以 0表示False,非0表示True; ③ Do While…Loop语句是先判断条件后执行循环 体,有可能一次也不执行; ④ 遇到Exit Do语句时,将强制提前结束循环, 执行Loop后的下一条语句,该语句允许在循环体 内出现一次或多次。
相关文档
最新文档