当前位置:文档之家› VB编程6.0 循环结构

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
设 计
相关主题