VB课件第6章Visual Basic 循环结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Private Sub Form_Click( ) Dim i As Integer i=0 Do While i < 100 i=i+1 Print i; If i Mod 10 = 0 Then Print Loop
End Sub
用Do Until … Loop循环来编制 例6-2的程序
Private Sub Form_Click() Dim i As Integer i=0 Do While i < 100 i=i+1 Print i; If i Mod 10 = 0 Then Print Loop
If Max <= x Then Max = x Next i Print Print “最大值为:”; Max End Sub
6.4 循环嵌套
循环嵌套:在一个循环语句的循环体中又包含有另一 循环语句。 VB的三种循环可以自身嵌套与相互嵌套 要求:内层结构一定包含在外层结构中,不能交叉
Do While … …
结束循环执行
For…Next语句的几点说明
① 步长可为正、可为负,当步长 为+1时,Step 1 :可以省略
② 初始值、终止值和步长值三个 参数,是数值型数据(可以是小 数)。可以是直接常数、常量、 变量或表达式,但一定要注意的 是,三个参数的值一旦确定,不 再因为变量值的变动而更改。
例:读程序: Private Sub Form_DblClick() x=2 y=8 z=3 For a = x To y Step z x=x+1 y=y+2 z=z+2 a=a+1 Next a Print "x="; x; "y="; y; "z="; z Print "a="; a End Sub
Int(a*100+0.5)/100
Print "平均值为"; a
End Sub
例:找最大值。
利用随机函数产生并显示30个0 到100之间的整数,找出其中的 最大值。
Max:用于保存当前的最大值
其初值为0(小于所有产生的数)
Private Sub Form_Click() Randomize Max = 0 For i = 1 To 30 x = Int(Rnd * 100) Print x;
x= 4 y= 12 z= 7 a=10
X=2 ,3 ,4 Y=8 ,10,12 Z=3 , 5, 7 a=2( 8,3)
3 a=a+步长=3+3
6 6<=8? True
7 a=a+步长=7+3
10 10<=8? False
For…Next语句的几点说明
③超过的两个含义: 当步长为正时,循环结束条件为大于终值 当步长为负时,循环结束条件为小于终值
True
Do … Loop While程 序流程图
至少执行一次 循环体
Do ... Loop Until 程序流程图
语句序列 (循环体)
条件判断
True
False
用Do...Loop Until语句,重新编写例 6-3的程序代码。
Private Sub Form_Click()
Dim Sum As Integer, i As Integer
Private Sub Command1_Click() Dim m%, n%, r%, t% m = Val(Text1.Text) n = Val(Text2.Text) If m < n Then t = m: m = n: n = t t=m*n Do r = m Mod n m=n n=r Loop Until r = 0
重复环节的关联却是明显的,而且,前 后的规律性也是可寻的。
在计算机出现之后,处理重复环节的问 题就显得非常简单。
6.1 循环的概念
计算机的特点之一就是,可以在程序 控制下严格地执行着重复的操作,并 可让重复环节在每一次的循环中有所 改变。
在指定条件下重复执行一组语句代码 的程序控制结构,称为计算机语言的 循环结构。
①在给出的两个正整数中,变量m(较大) , 变量n(放较小)。
m = Val(Text1.Text) n = Val(Text2.Text) If m < n Then t = m: m = n: n = t
m=231 n=63
②m除以n,得出余数r。 ③若r≠0,则 n→m,r→n,转到②。 ④若r=0,则n的值就是这两个正整数的最大公约数。
End Sub
Do Until i = 100
例6-3:求 1+22+32+……n2大于1000的最小值。
选Do … Loop语句: 不知道要加到第几项,但知道累加和大于 1000,并且,第一次超过1000时就不再累 加了,所以选Do … Loop语句。
求项数(计数i): i=0(初值) ,i=i+1(重复执行)
1.循环结构必须具备的条件
1)有循环控制变量; 2)有循环的初始条件, 必须对控制变量赋
予初始值以决定循环从什么状态开始执行; 3) 有循环状态变化,在每次循环过程中,有
用来改变控制变量的递增或递减值; 4) 有循环终止条件,通过测试循环控制变量
的最终条件值,用来判定是否应该结束循环。
2.循环结构的特点
0+1=1 1+2=3 3+3=6 6+4=10
1+2+ …+(n-1) +n
初值:k=0 重复执行: k=k+i (i=1,2,3,4,….,n)
Private Sub Command1_Click()
Dim n%, i%, k&
当步长为1时,Step 1可省略
n = Val(InputBox(“Input n:"))
End Sub
6.2.1 Do While | Until … Loop语句
Do
[<语句序列1>] [Exit Do]
循环体
[<语句序列2>]
Loop While <循环条件>
Do [<语句序列1>]
[Exit Do]
循环体
[<语句序列2>]
Loop Until<循环条件>
语句序列 (循环体)
条件判断 False
[Exit Do] [<语句序列2>]
循环体
Loop
条件判断
False
True
语句序列 (循环体)
Do While … Loop程序流程图
Do Until ... Loop程序流程图
条件判断
True
False
语句序列 (循环体)
例6-2:单击窗体,在窗体上显示1 到100的自然数,每行显示10个数。
例: 利用随机函数10个产生[20,90]的整数, 求其平均值.
界面设计: 单击窗体, 显
示结果如图.
例: 利用随机函数10个产生[20,90]的整数, 求其平均值.
分析: 产生数X 求和s
求平均a
产生一个X: X=Int(Rnd*71+20)
显示产生的值: Print x
计算和: s=s+x
重复10次 求得这10 个数的和s
Do r = m Mod n m=n n=r
Loop Until r = 0
m=264233211 n=6420321 rr==42021
m为最大公约数
2643321MMoodd426213==20412
求最小公倍数:
求两个正整数的积(初始的m,n的 值),
积除以它们的最大公约数。
VB例6-5
Sum = 0
i=0
Do Until Sum > 1000 Do
i=i+1
Sum = Sum + i^2
Loop
Do Until Sum > 1000
Print "累加到"; i; Байду номын сангаас的平方"
Print "这个多项式满足条件的值是:"; Sum
End Sub
例6-5:输入2个正整数,求它们的 最大公约数和最小公倍数
For k= …
Next k Loop
For k= …
Do While … … Loop Next k
Do while Do While … … Loop …
Loop
For k= …
Do While … …
Next k … Loop
Do While … …
For k= …
Visual Basic程序设计
Visual Basic 循环结构
(第8周1,2,3学时)
第6章 循环结构
6.1 循环的概念 6.2 Do … Loop语句 6.3 For … Next 语句 6.4 循环的嵌套 6.5 循环的退出 习题6
6.1 循环的概念
在自然界里,我们通常会遇到一些形象 的和抽象的重复现象(部分或全部)。
知道重复执行语句的次数
4.引入循环
例6-1:在窗体上显示1到10 十个自然数。 (1)程序代码 Form1.Print 1;2;3;4;5;6;7;8;9;10 (2)注意 Print后面的参数似乎编写得有点累赘冗长。 如果让我们显示100个自然数,其程序代码的设
计就非常不可取了。 其实,这里面就含有了“循环”的理论,100个
例6-5:输入2个正整数,求它们的 最大公约数和最小公倍数
231和63的最大公约数
古希腊数学家欧几里德的“辗转相除法”理论 ①在给出的两个正整数中,变量m(较大) ,
变量n(放较小)。 ②m除以n,得出余数r。 ③若r≠0,则 n→m,r→n,转到②。 ④若r=0,则n的值就是这两个正整数的最大
公约数。
长]
[<语句序列1>] [Exit For]
循环体
[<语句序列2>]
Next [<循环控制变量>]
61.35 F9or … Next 语句的流程图
For n=1 To 10 Step 4 Print n;
没有 Next n
nn==15913
1593<<==1010TrFuaelse
n=n+4=159+4=5913
④ For后面的循环变量和Next后面的循 环变量是同一个变量(变量名和类型相同) 单循环时,Next后面的循环变量可以省略
⑤ 可以在循环体中加上Exit For语句或 GoTo语句,中途退出For … Next循环。
例:求 k=1+2+3+ …+ n(n为自然数)
分析:k=0 k=k+1 k=k+2 k=k+3 k=k+4 … k=k+n
求累加和: Sum=0(初值) , Sum=Sum+i^2(重复执行)
例6-3
Private Sub Form_Click() Dim Sum As Integer, i As Integer Sum = 0 i=0 Do Until Sum > 1000 i=i+1 Sum = Sum + i^2 Loop Print "累加到"; i; "的平方" Print "这个多项式满足条件的值是:"; Sum
自然数参数,就是100次循环,解决这类问题, 程序代码采用循环结构编程,其可读性就大大提 高了。
6.2.1 Do While | Until … Loop语句
Do While <循环条件>
[<语句序列1>]
[Exit Do]
循环体
[<语句序列2>]
Loop Do Until<循环条件>
[<语句序列1>]
Label3.Caption = "它们的最大公约数是:" & m
Label4.Caption = "它们的最小公倍数数是:" & t / m End Sub
6.3 For … Next 语句
计数型循环语句:主要用于循环次数已知 的情况下,编写循环结构的程序代码。
For 循环控制变量 = 初值 To 终值 [Step 步
在指定条件成立时,重复执行某一段程序 代码(也称为语句序列),直到条件不成 立为止,也就是不再执行这段程序代码 (跳出循环)。
指定的条件,称为循环条件;被重复执行 的程序代码,称为循环体。
3.VB的循环语句
Do...Loop 循环
在编程过程中不能确定重复的次数,但知道重 复的条件
For...Next 循环
求平均a: a=s/10 显示计算结果: Print “平均值为”;a
Private Sub Form_Click()
s=0
For k = 1 To 10
a的值保留二位小数?
x = Int(Rnd * 71 + 20)
Print x s=s+x Next k a = s / 10
Round(a,2) Format(a,“#.00”)
For i = 1 To n
k=0
k=k+i
For i = 1 To n Step 1
Next i
k=k+i Next i Print “k="; k
For i = n To 1 Step -1 k=k+i
Next i
End Sub
在本例中,For循环结束后i 的值为? n+1(步长)
计算 n! ,如何修改程序?
End Sub
用Do Until … Loop循环来编制 例6-2的程序
Private Sub Form_Click() Dim i As Integer i=0 Do While i < 100 i=i+1 Print i; If i Mod 10 = 0 Then Print Loop
If Max <= x Then Max = x Next i Print Print “最大值为:”; Max End Sub
6.4 循环嵌套
循环嵌套:在一个循环语句的循环体中又包含有另一 循环语句。 VB的三种循环可以自身嵌套与相互嵌套 要求:内层结构一定包含在外层结构中,不能交叉
Do While … …
结束循环执行
For…Next语句的几点说明
① 步长可为正、可为负,当步长 为+1时,Step 1 :可以省略
② 初始值、终止值和步长值三个 参数,是数值型数据(可以是小 数)。可以是直接常数、常量、 变量或表达式,但一定要注意的 是,三个参数的值一旦确定,不 再因为变量值的变动而更改。
例:读程序: Private Sub Form_DblClick() x=2 y=8 z=3 For a = x To y Step z x=x+1 y=y+2 z=z+2 a=a+1 Next a Print "x="; x; "y="; y; "z="; z Print "a="; a End Sub
Int(a*100+0.5)/100
Print "平均值为"; a
End Sub
例:找最大值。
利用随机函数产生并显示30个0 到100之间的整数,找出其中的 最大值。
Max:用于保存当前的最大值
其初值为0(小于所有产生的数)
Private Sub Form_Click() Randomize Max = 0 For i = 1 To 30 x = Int(Rnd * 100) Print x;
x= 4 y= 12 z= 7 a=10
X=2 ,3 ,4 Y=8 ,10,12 Z=3 , 5, 7 a=2( 8,3)
3 a=a+步长=3+3
6 6<=8? True
7 a=a+步长=7+3
10 10<=8? False
For…Next语句的几点说明
③超过的两个含义: 当步长为正时,循环结束条件为大于终值 当步长为负时,循环结束条件为小于终值
True
Do … Loop While程 序流程图
至少执行一次 循环体
Do ... Loop Until 程序流程图
语句序列 (循环体)
条件判断
True
False
用Do...Loop Until语句,重新编写例 6-3的程序代码。
Private Sub Form_Click()
Dim Sum As Integer, i As Integer
Private Sub Command1_Click() Dim m%, n%, r%, t% m = Val(Text1.Text) n = Val(Text2.Text) If m < n Then t = m: m = n: n = t t=m*n Do r = m Mod n m=n n=r Loop Until r = 0
重复环节的关联却是明显的,而且,前 后的规律性也是可寻的。
在计算机出现之后,处理重复环节的问 题就显得非常简单。
6.1 循环的概念
计算机的特点之一就是,可以在程序 控制下严格地执行着重复的操作,并 可让重复环节在每一次的循环中有所 改变。
在指定条件下重复执行一组语句代码 的程序控制结构,称为计算机语言的 循环结构。
①在给出的两个正整数中,变量m(较大) , 变量n(放较小)。
m = Val(Text1.Text) n = Val(Text2.Text) If m < n Then t = m: m = n: n = t
m=231 n=63
②m除以n,得出余数r。 ③若r≠0,则 n→m,r→n,转到②。 ④若r=0,则n的值就是这两个正整数的最大公约数。
End Sub
Do Until i = 100
例6-3:求 1+22+32+……n2大于1000的最小值。
选Do … Loop语句: 不知道要加到第几项,但知道累加和大于 1000,并且,第一次超过1000时就不再累 加了,所以选Do … Loop语句。
求项数(计数i): i=0(初值) ,i=i+1(重复执行)
1.循环结构必须具备的条件
1)有循环控制变量; 2)有循环的初始条件, 必须对控制变量赋
予初始值以决定循环从什么状态开始执行; 3) 有循环状态变化,在每次循环过程中,有
用来改变控制变量的递增或递减值; 4) 有循环终止条件,通过测试循环控制变量
的最终条件值,用来判定是否应该结束循环。
2.循环结构的特点
0+1=1 1+2=3 3+3=6 6+4=10
1+2+ …+(n-1) +n
初值:k=0 重复执行: k=k+i (i=1,2,3,4,….,n)
Private Sub Command1_Click()
Dim n%, i%, k&
当步长为1时,Step 1可省略
n = Val(InputBox(“Input n:"))
End Sub
6.2.1 Do While | Until … Loop语句
Do
[<语句序列1>] [Exit Do]
循环体
[<语句序列2>]
Loop While <循环条件>
Do [<语句序列1>]
[Exit Do]
循环体
[<语句序列2>]
Loop Until<循环条件>
语句序列 (循环体)
条件判断 False
[Exit Do] [<语句序列2>]
循环体
Loop
条件判断
False
True
语句序列 (循环体)
Do While … Loop程序流程图
Do Until ... Loop程序流程图
条件判断
True
False
语句序列 (循环体)
例6-2:单击窗体,在窗体上显示1 到100的自然数,每行显示10个数。
例: 利用随机函数10个产生[20,90]的整数, 求其平均值.
界面设计: 单击窗体, 显
示结果如图.
例: 利用随机函数10个产生[20,90]的整数, 求其平均值.
分析: 产生数X 求和s
求平均a
产生一个X: X=Int(Rnd*71+20)
显示产生的值: Print x
计算和: s=s+x
重复10次 求得这10 个数的和s
Do r = m Mod n m=n n=r
Loop Until r = 0
m=264233211 n=6420321 rr==42021
m为最大公约数
2643321MMoodd426213==20412
求最小公倍数:
求两个正整数的积(初始的m,n的 值),
积除以它们的最大公约数。
VB例6-5
Sum = 0
i=0
Do Until Sum > 1000 Do
i=i+1
Sum = Sum + i^2
Loop
Do Until Sum > 1000
Print "累加到"; i; Байду номын сангаас的平方"
Print "这个多项式满足条件的值是:"; Sum
End Sub
例6-5:输入2个正整数,求它们的 最大公约数和最小公倍数
For k= …
Next k Loop
For k= …
Do While … … Loop Next k
Do while Do While … … Loop …
Loop
For k= …
Do While … …
Next k … Loop
Do While … …
For k= …
Visual Basic程序设计
Visual Basic 循环结构
(第8周1,2,3学时)
第6章 循环结构
6.1 循环的概念 6.2 Do … Loop语句 6.3 For … Next 语句 6.4 循环的嵌套 6.5 循环的退出 习题6
6.1 循环的概念
在自然界里,我们通常会遇到一些形象 的和抽象的重复现象(部分或全部)。
知道重复执行语句的次数
4.引入循环
例6-1:在窗体上显示1到10 十个自然数。 (1)程序代码 Form1.Print 1;2;3;4;5;6;7;8;9;10 (2)注意 Print后面的参数似乎编写得有点累赘冗长。 如果让我们显示100个自然数,其程序代码的设
计就非常不可取了。 其实,这里面就含有了“循环”的理论,100个
例6-5:输入2个正整数,求它们的 最大公约数和最小公倍数
231和63的最大公约数
古希腊数学家欧几里德的“辗转相除法”理论 ①在给出的两个正整数中,变量m(较大) ,
变量n(放较小)。 ②m除以n,得出余数r。 ③若r≠0,则 n→m,r→n,转到②。 ④若r=0,则n的值就是这两个正整数的最大
公约数。
长]
[<语句序列1>] [Exit For]
循环体
[<语句序列2>]
Next [<循环控制变量>]
61.35 F9or … Next 语句的流程图
For n=1 To 10 Step 4 Print n;
没有 Next n
nn==15913
1593<<==1010TrFuaelse
n=n+4=159+4=5913
④ For后面的循环变量和Next后面的循 环变量是同一个变量(变量名和类型相同) 单循环时,Next后面的循环变量可以省略
⑤ 可以在循环体中加上Exit For语句或 GoTo语句,中途退出For … Next循环。
例:求 k=1+2+3+ …+ n(n为自然数)
分析:k=0 k=k+1 k=k+2 k=k+3 k=k+4 … k=k+n
求累加和: Sum=0(初值) , Sum=Sum+i^2(重复执行)
例6-3
Private Sub Form_Click() Dim Sum As Integer, i As Integer Sum = 0 i=0 Do Until Sum > 1000 i=i+1 Sum = Sum + i^2 Loop Print "累加到"; i; "的平方" Print "这个多项式满足条件的值是:"; Sum
自然数参数,就是100次循环,解决这类问题, 程序代码采用循环结构编程,其可读性就大大提 高了。
6.2.1 Do While | Until … Loop语句
Do While <循环条件>
[<语句序列1>]
[Exit Do]
循环体
[<语句序列2>]
Loop Do Until<循环条件>
[<语句序列1>]
Label3.Caption = "它们的最大公约数是:" & m
Label4.Caption = "它们的最小公倍数数是:" & t / m End Sub
6.3 For … Next 语句
计数型循环语句:主要用于循环次数已知 的情况下,编写循环结构的程序代码。
For 循环控制变量 = 初值 To 终值 [Step 步
在指定条件成立时,重复执行某一段程序 代码(也称为语句序列),直到条件不成 立为止,也就是不再执行这段程序代码 (跳出循环)。
指定的条件,称为循环条件;被重复执行 的程序代码,称为循环体。
3.VB的循环语句
Do...Loop 循环
在编程过程中不能确定重复的次数,但知道重 复的条件
For...Next 循环
求平均a: a=s/10 显示计算结果: Print “平均值为”;a
Private Sub Form_Click()
s=0
For k = 1 To 10
a的值保留二位小数?
x = Int(Rnd * 71 + 20)
Print x s=s+x Next k a = s / 10
Round(a,2) Format(a,“#.00”)
For i = 1 To n
k=0
k=k+i
For i = 1 To n Step 1
Next i
k=k+i Next i Print “k="; k
For i = n To 1 Step -1 k=k+i
Next i
End Sub
在本例中,For循环结束后i 的值为? n+1(步长)
计算 n! ,如何修改程序?