VB编程6.0 循环结构
环 结
X=6
构
For K = 1 To 10 Step -2
X=X+K
Next K
Print K,X
茂
名
院
学
思考1:
1.求1×3 ×5 ×7……(共N项)。
VB
F=F*(2*I-1) ;循环变量I,循环终值N
程
序 设 计
2. 求: 1 1 1 1 1 3 5 2n 1
——
循 环 结
3. 求: 2 2 4 4 6 6 2k 2k
End Sub
正常情况:i= 1, 3, 5, 7, 9, 11, 13, 15, 17, 19
现在:i= 4, 9, 14, 19
茂
名
院
学
应用举例:
1:用For循环编程5+5+…..+5(20个5之和)
VB
2:用For循环编程计算s=1+2+3+…+100
程 序
3:用For循环编程同行输出10个“*”
循环条件
程 序
While i<=100
设 计
Sum=Sum+i
循环变量增值
i=i+1
循环终值
——
循 环 结 构
Wend
循环体
Label3.Caption = Sum
End Sub
茂
名
院
学
❖特点: 先判断表达式,后执行循环体
❖说明:
VB
循环体有可能一次也不执行
程 序
循环体可为任意类型语句
设 计
退出while循环
当循环格式:
While 循环条件
VB
程
语句块
序 设
Wend
计
执行过程:
——
循 环
(1) 判断循环条件ห้องสมุดไป่ตู้否为真
结
(2) 若是,执行循环体(语句块)
构
(3) 然后返回While语句
再次判断循环条件是否为真
(4)重复1~3步骤。
(5)否则,结束循环
循环条件 F T
语句块
茂
名
院
学
【例1】求1+2+3+4+…+N √
设 计
4:用For循环编程输出10行“**********”
——
循 环 结 构
茂
名
院
学
【例3】打印斐波那契(Fibonacci)数列的前20项
VB
斐波那契数列如下:
程 序
0,1,1,2,3,5,8,13,…
设 计
分析:
——
即从第三项起每一项是其前两项之和。
循 环 结 构
茂
名
院
学
斐波那契数列:
0,1,1,2,3,5,8,13,…
VB
N=Val(inputbox(“请输入一个数:”))
程 序
max=N : min=N
设 计
For i=1 to 9
——
N=Val(inputbox(“请输入一个数:”))
循 环
if max<N then max=N
结 构
if min>N then min=N
Next
Print max , min
——
条件表达式不成立,值为.F.
循
环
无限循环: While(.T.)
结
构
循环体
Wend
茂
名
院
学
【例2】显示1~10的平方 √
VB
Private Sub Form_Click()
程
k=1
运行结果:
序
设
While k<=10
计
1*1=1 2*2=4
Print str(k)+”*”+str(k)+”=“+3s*t3r(=k9*k)
——
循
环 格式一、二:在循环起始处判断条件,为当型循环
结
构 格式三、四:在循环终止处判断条件, 为直到型循环
茂
名
院
学
格式一:
Do While <条件>
[<语句组1>]
[Exit Do]
( If(i mod 21=0)print i;)E及nd显I示f 前边的内容
Next i
茂
名
院
学
§
3
Do…Loop循环结构(循环次数未知)
VB
问题: 求12+22+32+42+…小于某数N的最大值,N由用户
程
指定。
序
设 特点: 已知循环条件、未知循环次数,用Do … Loop循环
计
结构实现
——
循 环 结 构
Label3.Caption = Sum End Sub
茂
名
院
学
【例2】求 N!( N!=1×2×3×…×N)
累乘分析:
初始化: F=i
循环体: F= F × i (i=1,2,3……N)
VB
程
程序:
序 设
Private Sub Command1_Click()
计
Dim N %, i As Integer, F! ’F AS Long
茂
名
院
学
打印斐波那契(Fibonacci)数列的前20项
斐波那契数列如下:
0,1,1,2,3,5,8,13,…
VB
即从第三项起每一项是其前两项之和。
程 序
分析: ……
设 Private Sub Form_Click()
计
F0 = 0 : F1 = 1
——
循
Print F0 , F1
环
For i= 1 To 9
茂
名
院
学
1. 格式
VB
程 序 设 计
格式一: Do While <条件>
[<语句组1>] [Exit Do] [<语句组2>] Loop
——
循 环
格式三:
结
Do
构
[<语句组1>]
[Exit Do]
[<语句组2>]
Loop While <条件>
格式二: Do Until <条件>
[<语句组1>] [Exit Do] [<语句组2>] Loop
也可以省略
茂
名
院
学
【例1】求1+2+3+4+…+N √
累加分析: 已知量:累加器(变量)初值 Sum=0 N(输入)
初值、终值和增量: 1、N、1
VB
重复执行(循环体) Sum=Sum+i (i=1,2,…,N)
程 Private Sub Command1_Click()
序 设 计
Dim N%, i As Integer, Sum初%值与终值换位
程 序
Print i ,
设 计
Next
i
Print “i=“, i
yes i>13
no
——
循
环 结
循环执行次数
构 输出 i的值分别为:
执行循环体(Print i ) i=i+3
2 5 8 11
出了循环输出为: i=14
后续语句 Print “i=“,i
茂
名
院
学
❖ 在循环体内对循环控制变量可多次引用;但最好不要
计
> 0 ,初值< 终值(=1 时,可省略) < 0 ,初值> 终值 = 0 ,死循环
——
循 (4) 循环次数=Max{ Int(终值-初值)/步长 +1),0 }
环 结
构 (5)Exit For——退出循环,常放在条件语句中,又称 “非正
常出口”
(6)Next之后的循环变量应与For语句中的循环变量应一致,
构
1 3 3 5 5 7 2k 1 2k 1
F=F *4*I*I/(2*I-1)/(2*I+1);循环变量I,循环终值K
茂
名
院
学
思考2:
1. 求12+22+32+42+……+1002
2. 求13+33+53+……+n3
VB
程 3. 求1-3+5-7+…+(-1)n+1(2n-1)
序 设
1.Sum=Sum+I*I; 3.Sum=Sum+(-1)^(I+1)*(2*I-1);
VB
程
Text1
序
设 计
Label3
——
循 环 结 构
累加分析: 累加器(变量)初值 Sum=0 循环体(重复执行) Sum=Sum+i (i=1,2,…,N)
茂
名
院
学
Private Sub Command1_Click()
N = Val(Text1.Text) : Sum = 0
VB
循环初值
i=1
End Sub
茂
名
院
学
将初值赋给循环变量
例: 判断以下程序段的执行结果: 判断循环变量是否超过终值
For i = 5 To 1 Step -1
Print i * i;
VB
程
Next i
序
Print
设 计