《新VB课件第5章 循环结构》由会员分享,可在线阅读,更多相关《新VB课件第5章 循环结构(59页珍藏版)》请在金锄头文库上搜索。
1、第五章第五章 循环结构程序设计循环结构程序设计第五章第五章 循环结构程序设计循环结构程序设计循环结构循环结构概述概述 5.1循环结构语句循环结构语句 5.2循环结构嵌套循环结构嵌套 5.3计时器和滚动条计时器和滚动条 5.4循环结构的应用举例循环结构的应用举例 5.5第五章第五章 循环结构程序设计循环结构程序设计5.1 循环循环结构概述结构概述5.1.1 案例引入案例引入5.1.2 循环结构循环结构第五章第五章 循环结构程序设计循环结构程序设计5.1.1 案例引入案例引入【例例5.1】设计要求设计要求 dim num as integer sum = 0 For num = 1 To 10 s
2、um = sum + num Next num在标题为在标题为“自然数求和自然数求和”的窗体的窗体Form1上,添加一个标题为上,添加一个标题为“累加累加”的命令按钮的命令按钮Command1;然后再添加一个文本内容为空;然后再添加一个文本内容为空的文本框的文本框Text1。程序运行时单击。程序运行时单击“累加累加”按钮,求按钮,求1+2+3+10的值,并将计算结果显示在的值,并将计算结果显示在Text1中。中。第五章第五章 循环结构程序设计循环结构程序设计5.1.2 循环结构循环结构循环结构循环结构 循环(循环(Loop)又称为重复(又称为重复(Repetition),是指在一定条件下),是
3、指在一定条件下重重复执行复执行一组指定的语句。被重复执行的一组语句称为一组指定的语句。被重复执行的一组语句称为循环体循环体。循环语句循环语句 分类分类 For语句语句 Do语句语句 While语句语句 For语句语句用于用于事先已知事先已知操作要重复的操作要重复的次数次数 ;Do语句和语句和While语句语句用用于事先不知道操作要重复的次数,但是知道于事先不知道操作要重复的次数,但是知道操作结束操作结束的条件。的条件。 第五章第五章 循环结构程序设计循环结构程序设计5.2 循环循环结构语句结构语句5.2.1 For循环语句循环语句 5.2.2 Do循环语句循环语句 5.2.3 While循环语
4、句循环语句 第五章第五章 循环结构程序设计循环结构程序设计5.2.1 For循环语句循环语句For循环循环也称为也称为ForNext循环或计数循环,一般用于循环或计数循环,一般用于循环次数循环次数已知已知的循环结构。的循环结构。 语法格式语法格式 For 循环变量循环变量 = 初值初值 To 终值终值 Step 步长步长 循环体循环体 Exit ForNext 循环变量循环变量首先将首先将“初值初值”赋给赋给“循环变量循环变量”,并,并自动记下自动记下“终值终值”和和“步长步长”;然后检查;然后检查“循环变量循环变量”的值的值是否超过是否超过“终值终值”。若超过就结束循环,执行若超过就结束循环
5、,执行Next后面的语句;若没有超过则执后面的语句;若没有超过则执行一次行一次“循环体循环体”,再将,再将“循环变量循环变量+步长步长”的值赋给的值赋给“循循环变量环变量”,然后再重新检查,然后再重新检查“循环变量循环变量”的当前值是否超过的当前值是否超过“终值终值”。 功功能能第五章第五章 循环结构程序设计循环结构程序设计For循环循环的执行流程5.2.1 For循环语句循环语句 步长为正数步长为正数 步长为负数步长为负数 第五章第五章 循环结构程序设计循环结构程序设计5.2.1 For循环语句循环语句语法格式语法格式 For 循环变量循环变量 = 初值初值 To 终值终值 Step 步长步
6、长 循环体循环体 Exit ForNext 循环变量循环变量循环变量循环变量:也称为循环控制变量,必须为:也称为循环控制变量,必须为数值型数值型变量。变量。初值、终值初值、终值:可以是:可以是数值型数值型常量、变量或表达式。常量、变量或表达式。 步长步长:循环变量的增量,可以是数值型常量、变量或表达式:循环变量的增量,可以是数值型常量、变量或表达式循环体循环体:需要:需要重复执行重复执行的程序代码,可以是一条或多条语句的程序代码,可以是一条或多条语句说明说明第五章第五章 循环结构程序设计循环结构程序设计5.2.1 For循环语句循环语句语法格式语法格式 For 循环变量循环变量 = 初值初值
7、To 终值终值 Step 步长步长 循环体循环体 Exit ForNext 循环变量循环变量说明说明Next 循环变量循环变量:用于结束一次:用于结束一次For循环,并修改循环变量循环,并修改循环变量的值,即将的值,即将“循环变量循环变量+步长步长”的值赋给的值赋给“循环变量循环变量”。 循环次数的计算公式为循环次数的计算公式为“循环次数循环次数=Int(终值终值-初值初值)/步长步长+1)”Exit For用于强制退出循环,可以在循环体的任何位置,一般用于强制退出循环,可以在循环体的任何位置,一般与与条件语句条件语句配合使用配合使用 第五章第五章 循环结构程序设计循环结构程序设计5.2.1
8、For循环语句循环语句程序运行时,在程序运行时,在Text1中输入一个正整数中输入一个正整数n,单击,单击“计算计算”按钮,按钮,求求123n的值,并将计算结果显示在的值,并将计算结果显示在Label2中。中。【例例5.2】设计要求设计要求fac = 1 For num = 1 To n fac = fac * num Next num第五章第五章 循环结构程序设计循环结构程序设计5.2.1 For循环语句循环语句【例例5.3】设计要求设计要求程序运行时,在程序运行时,在Text1中输入一个正整数中输入一个正整数n(n3),单击),单击“判判断断”按钮,判断按钮,判断n是否为素数,并在是否为素
9、数,并在Label2中显示判断结果。中显示判断结果。20130929园林flag = True For num = 2 To n - 1 If (n Mod num) = 0 Then flag = False Exit For End IfNext num第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句1.前测型前测型DoLoop Do While 条件表达式条件表达式 循环体循环体 Exit DoLoop语法格式语法格式 首先首先计算计算“条件表达式条件表达式”的值,若值为的值,若值为True,则执行,则执行“循环体循环体”,遇到,遇到Loop返回返回再次计算
10、再次计算“条件表达式条件表达式”的值,的值,若值为若值为True则继续执行则继续执行“循环体循环体”,若值为,若值为False则结束则结束Do循环,执行循环,执行Loop后面的语句。后面的语句。Do WhileLoop循环语句循环语句 功功能能第五章第五章 循环结构程序设计循环结构程序设计说明说明5.2.2 Do循环语句循环语句1.前测型前测型DoLoop Do While 条件表达式条件表达式 循环体循环体 Exit DoLoop语法格式语法格式 Do WhileLoop循环语句循环语句 条件表达式条件表达式:可以为关系表达式、逻辑表达式或算术表达式:可以为关系表达式、逻辑表达式或算术表达式
11、While表示当表示当“条件表达式条件表达式”的值为的值为True时执行时执行“循环体循环体”,为为False时结束循环。时结束循环。 第五章第五章 循环结构程序设计循环结构程序设计说明说明5.2.2 Do循环语句循环语句1.前测型前测型DoLoop Do While 条件表达式条件表达式 循环体循环体 Exit DoLoop语法格式语法格式 Do WhileLoop循环语句循环语句 Exit Do用于强制退出用于强制退出Do循环,可以在循环体的任何位置,一循环,可以在循环体的任何位置,一般与般与条件语句条件语句配合使用配合使用 如果省略了如果省略了“While条件表达式条件表达式”,则循环将
12、,则循环将无条件地重复无条件地重复 。 第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句1.前测型前测型DoLoop Do Until 条件表达式条件表达式 循环体循环体 Exit DoLoop语法格式语法格式 首先首先计算计算“条件表达式条件表达式”的值,若值为的值,若值为False ,则执行,则执行“循环体循环体”,遇到,遇到Loop返回返回再次计算再次计算“条件表达式条件表达式”的值,的值,若值为若值为False则继续执行则继续执行“循环体循环体”,若,若True值为则结束值为则结束Do循环,执行循环,执行Loop后面的语句。后面的语句。 Do UntilL
13、oop循环语句循环语句 功功能能第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句【例例5.4】设计要求设计要求sum = 0 num = 1 Do While num 10 sum = sum + num num = num + 1 Loop编写程序,求编写程序,求1+2+3+10的累加和,使用的累加和,使用Do UntilLoop循循环语句实现。环语句实现。1.前测型前测型DoLoop 第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句【例例5.5】设计要求设计要求输入一个正整数,判断该整数是否为素数,使用输入一个正整数,判断该整数是
14、否为素数,使用Do While Loop 循环语句实现。循环语句实现。flag = True num = 2 Do While (num = (n 1) And (flag = True) If (n Mod num) = 0 Then flag = False Else num = num + 1 End IfLoop1.前测型前测型DoLoop 第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句2.后测型后测型DoLoop DoLoop While循环语句循环语句 Do 循环体循环体 Exit DoLoop While 条件表达式条件表达式语法格式语法格式 首先
15、首先执行执行“循环体循环体”,然后,然后计算计算“条件表达式条件表达式”的值,的值,若值为若值为True,则继续执行,则继续执行“循环体循环体”,然后再次计算,然后再次计算“条件表达式条件表达式”的值,若值为的值,若值为True则再继续执行则再继续执行“循环体循环体”,若值为,若值为False则结束则结束Do循环,执行循环,执行Loop后面的语句。后面的语句。 功功能能第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句2.后测型后测型DoLoop DoLoop Until循环语句循环语句 Do 循环体循环体 Exit DoLoop Until 条件表达式条件表达式语
16、法格式语法格式 首先首先执行执行“循环体循环体”,然后,然后计算计算“条件表达式条件表达式”的值,的值,若值为若值为False,则继续执行,则继续执行“循环体循环体”,然后再次计算,然后再次计算“条件表达式条件表达式”的值,若值为的值,若值为False则再继续执行则再继续执行“循环体循环体”,若值为,若值为True则结束则结束Do循环,执行循环,执行Loop后面的语句。后面的语句。 功功能能第五章第五章 循环结构程序设计循环结构程序设计5.2.2 Do循环语句循环语句【例例5.7】设计要求设计要求sum = 0 num = 1 Do sum = sum + num num = num + 1
17、Loop While num 10 编写程序,求编写程序,求1+2+3+10的累加和,使用的累加和,使用DoLoop Until循循环语句实现。环语句实现。2.后测型后测型DoLoop 第五章第五章 循环结构程序设计循环结构程序设计5.2.3 While循环语句循环语句While 条件表达式条件表达式 循环体循环体Wend语法格式语法格式 首先首先计算计算“条件表达式条件表达式”的值,若值为的值,若值为True,则执行,则执行“循环体循环体”,遇到,遇到Wend返回继续计算返回继续计算“条件表达式条件表达式”的值,的值,若值为若值为True则继续执行则继续执行“循环体循环体”,若值为,若值为F
18、alse则结束则结束While循环,执行循环,执行Wend后面的语句。后面的语句。 功功能能第五章第五章 循环结构程序设计循环结构程序设计5.2.3 While循环语句循环语句【例例5.9】设计要求设计要求sum = 0 num = 1 While num =0) Then 当当20枚硬币的总值等枚硬币的总值等60分,则输出分,则输出 Print 1分分:; one, 2分分:; two, 5分分:; five n = n + 1 取法总数加取法总数加1 End If NextNextPrint -Print 总共有:总共有:; n; 种取法种取法End Sub第五章第五章 循环结构程序设计循
19、环结构程序设计例例5.13 求求N!(!(N为自然数)为自然数)分分析析:由由阶阶乘乘的的定定义义,我我们们可可以以得得出出N!=1* *2* * *(N-2)* *(N-1)* *N=(N-1)!* *N,也也就就是是说说,一一个个自自然然数数的的阶阶乘乘,等等于于该该自自然数与前一个自然数阶乘的乘积。然数与前一个自然数阶乘的乘积。第五章第五章 循环结构程序设计循环结构程序设计程序如下:程序如下: Private Sub Form_Click() Dim num%, n% dim fac as doublen = InputBox(输入一个自然数输入一个自然数:, 输入提示输入提示, 10)
20、fac = 1For num = 1 To n fac = fac * numNext IPrint n; !=; facEnd Sub第五章第五章 循环结构程序设计循环结构程序设计例例5.14 求水仙花数。所谓求水仙花数。所谓“水仙花数水仙花数”是指一个三位数,其各位数是指一个三位数,其各位数字立方和等于该本身。例如:字立方和等于该本身。例如:153是一个水仙花数,因为是一个水仙花数,因为153=13+53+33。Private Sub Command1_click() Dim Num As Integer Dim hundred As Integer, ten As Integer, on
21、e As Integer For Num = 100 To 999 hundred = Num 100 得到百位上的数字得到百位上的数字 ten = (Num 10) Mod 10 得到十位上的数字得到十位上的数字 one = Num Mod 10 得到个位上的数字得到个位上的数字 If Num = hundred 3 + ten 3 + one 3 Then Print Num; 是水仙花是水仙花 End If NextEnd Sub第五章第五章 循环结构程序设计循环结构程序设计例例5.15 百钱买百鸡百钱买百鸡Private Sub Command1_Click() Dim cocks A
22、s Integer, hens As Integer, chicks As Integer cocks = 0 Do While cocks = 19 hens = 0 Do While hens R Form1.Print X, 太大了太大了,继续猜继续猜! Case Else Form1.Print X, 太小了太小了,继续猜继续猜! End Select times = times + 1 Loop While times 5 Form1.Print 正确答案为正确答案为 & Str(R)第五章第五章 循环结构程序设计循环结构程序设计程序运行时,在程序运行时,在Text1和和Text2中
23、输入两个正整数,单击中输入两个正整数,单击“最大最大公约数公约数”按钮,求这两个整数的按钮,求这两个整数的最大公约数最大公约数并显示在并显示在Text3中;中;单击单击“最小公倍数最小公倍数”按钮,求这两个整数的按钮,求这两个整数的最小公倍数最小公倍数并显示并显示在在Text4中。中。20130929食科食科【例例5.21】第五章第五章 循环结构程序设计循环结构程序设计第五章第五章 循环结构程序设计循环结构程序设计Rem 碾转相除法求两个整数的最大公约数、最小公倍数碾转相除法求两个整数的最大公约数、最小公倍数Dim n as long , m as long , nm As LongDim r
24、 as long, t As longm = Val(InputBox(第一个数第一个数=)n = Val(InputBox(第二个数第二个数=)nm = n * m 保存两个数的乘积保存两个数的乘积If m n Then t = m: m = n: n = t r = m Mod n Do While (r 0) m = n n = r r = m Mod n LoopPrint 最大公约数最大公约数=, nPrint 最小公倍数最小公倍数=, nm / n第五章第五章 循环结构程序设计循环结构程序设计5.4 计时器和滚动条计时器和滚动条5.4.1 计时器计时器5.4.2 滚动条滚动条第五章
25、第五章 循环结构程序设计循环结构程序设计5.4.1 计时器计时器1.属性属性 Interval属性属性 Interval(时间间隔)(时间间隔)属性用于设定计时器触发事件的时间间隔属性用于设定计时器触发事件的时间间隔,单位为,单位为ms(0.001s),取值范围为),取值范围为065535ms。 若将若将Interval属性设置为属性设置为0或负数或负数,则计时器,则计时器停止工作停止工作。 Enabled属性属性 Enabled(可用)(可用)属性属性是计时器的默认属性,用于设置计时器是计时器的默认属性,用于设置计时器是否有效是否有效。 True :默认值,而且:默认值,而且Interval
26、值值大于大于0,计时器开始工作,计时器开始工作 。False :计时器则停止工作:计时器则停止工作 。第五章第五章 循环结构程序设计循环结构程序设计5.4.1 计时器计时器2.事件事件 Timer事件事件Timer事件事件以以Interval属性指定的属性指定的间隔时间间隔时间发生,可将需要发生,可将需要定时定时重复执行重复执行的操作放在该事件过程中完成。的操作放在该事件过程中完成。当当Enabled属性值为属性值为True且且Interval属性值属性值大于大于0时,计时器才能响应时,计时器才能响应Timer事件。事件。第五章第五章 循环结构程序设计循环结构程序设计5.4.1 计时器计时器3
27、.示例示例 倒计数倒计数【例例5.12】设计要求设计要求第五章第五章 循环结构程序设计循环结构程序设计Public num As IntegerPrivate Sub Command1_Click() 开始开始 num = Val(Text1.Text) Timer1.Enabled = True Text2.Enabled = True Text2.Text = numEnd SubPrivate Sub Command2_Click() 暂停暂停 Timer1.Enabled = FalseEnd SubPrivate Sub Command3_Click() 继续继续 Randomize
28、 Timer1.Enabled = True 换一种颜色显示换一种颜色显示 Text2.ForeColor = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Text2.Text = numEnd Sub第五章第五章 循环结构程序设计循环结构程序设计Private Sub Form_Activate() Text1.SetFocus End SubPrivate Sub Form_Load() 窗体加载窗体加载 Text2.Enabled = False Timer1.Enabled = False Text1.Text = Timer1.Interval = 10
29、00End SubPrivate Sub Timer1_Timer() 倒计数倒计数 num = num - 1 If num = 60 Then Mm = Mm + 1 Ss = 0 If Mm = 60 Then Hh = Hh + 1 Mm = 0 End If End If 以指定格式显示以指定格式显示 Label1.Caption = Format$(Hh, 00) + : + Format$(Mm, 00) + : + Format$(Ss, 00)End Sub第五章第五章 循环结构程序设计循环结构程序设计5.4.2 滚动条滚动条Max滑块滑块Min水平滚动条水平滚动条垂直滚动条
30、垂直滚动条滚动条滚动条的两端各有一个的两端各有一个滚动箭头滚动箭头,在滚,在滚动箭头之间有一个动箭头之间有一个滑块滑块。滚动条滚动条通常用于通常用于协助观察数据协助观察数据或或确定位确定位置置,也可用作数据输入工具,用来提供,也可用作数据输入工具,用来提供某一范围内的数值供用户选择。某一范围内的数值供用户选择。 Value属性属性 Value(数值)(数值)属性是滚动条的默认属性,用于返回或设置当属性是滚动条的默认属性,用于返回或设置当前滑块的前滑块的位置位置,其值表示滚动条内滑块当前所处位置的值。,其值表示滚动条内滑块当前所处位置的值。 Value的值一定在的值一定在Min和和Max之间。之
31、间。 1.属性属性 第五章第五章 循环结构程序设计循环结构程序设计5.4.2 滚动条滚动条1.属性属性 Max属性属性 Min属性属性 Max(最大值)(最大值)属性表示滑块处在属性表示滑块处在最大位置最大位置所代表的值所代表的值 。 Min(最小值)(最小值)属性表示滑块处在属性表示滑块处在最小位置最小位置所代表的值所代表的值 。 该属性取值范围为该属性取值范围为-32 76832 767。 该属性取值范围为该属性取值范围为-32 76832 767。 第五章第五章 循环结构程序设计循环结构程序设计5.4.2 滚动条滚动条1.属性属性 LargeChange属性属性 SmallChange属
32、性属性 LargeChange(大改变)(大改变)属性用于设定当用户用鼠标单击滚动属性用于设定当用户用鼠标单击滚动条的滚动箭头和滑块之间的条的滚动箭头和滑块之间的空白区域空白区域时,滑块移动的增量值。时,滑块移动的增量值。SmallChange(小改变)(小改变)属性用于设定当用户用鼠标单击滚动属性用于设定当用户用鼠标单击滚动条条两端箭头两端箭头时,滑块移动的增量值。时,滑块移动的增量值。第五章第五章 循环结构程序设计循环结构程序设计5.4.2 滚动条滚动条2.事件事件 当当改变改变滚动条滚动条Value属性值时触发属性值时触发Change事件事件按住鼠标并且按住鼠标并且拖动拖动滚动条的滑块时触发滚动条的滑块时触发Scroll事件事件 Change事件事件Scroll事件事件Scroll事件与事件与Change事件的事件的区别区别在于:当滚动条的滑块滚动在于:当滚动条的滑块滚动时时Scroll事件事件一直发生一直发生,而,而Change事件只是在滚动结束后事件只是在滚动结束后发发生一次生一次。 第五章第五章 循环结构程序设计循环结构程序设计利用滚动条改变文本框中所显示文本的字号大小利用滚动条改变文本框中所显示文本的字号大小