VB循环结构程序设计4
- 格式:doc
- 大小:37.50 KB
- 文档页数:3
VB循环结构程序设计(二):Do循环Do循环语句一般用于解决循环次数未知的应用问题,如求素数、求最大公约数问题等,是根据某一条件来决定是否指行循环体。
在本节课中,我们要学习如下内容:
⑴Do{While|Until}…Loop循环的语法及执行过程⑵Do…Loop{While|Until}循环的语法及执行过程
⑶Do循环变量改变及循环条件的设置⑷两种Do循环语句的差异及执行流程
⑹Do循环变量改变及循环条件的设置
(一)Do循环语句语法
1.语句形式一,先判断后执行;
Do {While|Until} <条件>
语句块
[Exit Do]
语句块
Loop
2.语句形式一:先执行后判断
Do
语句块
[Exit Do]
语句块
Loop {While|Until} <条件>
功能:形式1为先判断后执行,有可能一次也不执行;形式2为先执行后判断,循环体至少执行一次;Do与Loop配对
While:当条件,即当条件为True时,执行循环体
Until:直到条件,即直到条件为True时退出循环,否则执行循环体
Exit Do:循环体遇到该语句时,退出Do…Loop循环执行Loop语句后语句
注意:要防止死循环,一般在循环体外设置循环变量,在循环体内用语句不断更改循环变量的值,从而有机会使循环条件成为真或假,退出循环。若出现死循环,可以使用Ctrl+Break键结束程序的执行。有时,根据需要,要人为设置死循环,如反复让计算机产生七个1-35这的随机数。这时,若用do While(条件)语句实现,可用如下语句:
Do While .T
…
Loop
(二)Do循环流程图
【举例1】求两数最大公约数、最小公倍数
Dim m, n, r, t As Integer
m = Val(Text1.Text) ‘取两个数M,N
n = Val(Text2.Text)
…
If m < n Then 指定M>N
t = n
n = m
m = t
End If
Do While n > 0 ‘用辗转相除法,直到N=0,
r = m Mod n
m = n
n = r
Loop
Label3.Caption = "最大公约数" & m ‘最大公约数存放在M中
t = m
m = Val(Text1.Text)
n = Val(Text2.Text)
Label4.Caption = Label4.Caption & Str(m * n / t) 最小公倍数mn/t
【举例2】求自然数e的值:e=1+1/1!+1/2!+…+1/n!+…,要求误差小于0.0000001
Dim i As Integer
Dim n As Long
Dim t, e As Double
e = 0 ‘累加器e赋值为0
i = 0
n = 1
t = 1 ‘t为第n项的值:1/n!
Do While t > 0.0000001 ‘没达到精度0.0000001,执行循环
e = e + t ‘累加
i = i + 1
n = n * I 求n的阶乘
t = 1 / n 求1/n!
Loop
Print "e=" & e, "循环次数为" & i
【举例3】学生练习1.求两数的最公约数、最小公倍数;
2.求100以内的素数,并输出;
3.求自然数e的值:e=1+1/1!+1/2!+…+1/n!+…,要求误差小于0.0000001(三)循环嵌套
一个循环体内以包含了一个完整的循环结构称为循环的嵌套。循环嵌套要求:⑴内层循环必须完全包含在外层循环中;⑵不同的循环层应采用不同的缩进方式表现出来,以增加程序的可读性
⑶不同的循环体应使用不同的循环变量
【举例4】打印九九乘法表
Dim Sgs As String
Dim i, j As Integer
For i = 1 To 9 ‘被乘数从1变到9
For j = i To 9 ‘乘数从1变到9
Sgs = i & "×" & j & "=" & Str(i * j) ‘打印公式如1×1=1
Picture1.Print Tab((j - 1) * 9 + 1); Sgs;
Next j
Picture1.Print
Next I