VB控制结构_ForWhileDo_第1页
VB控制结构_ForWhileDo_第2页
VB控制结构_ForWhileDo_第3页
VB控制结构_ForWhileDo_第4页
VB控制结构_ForWhileDo_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1v提要提要 掌握循环结构基本知识 For Next While Wend Do Loop 掌握程序控制结构编程方法v重点重点 For Next While Wend Do Loop第第4章章 程序控制结构 2问题问题: 产生产生15个个1,40随机整数,并用随机整数,并用Print方法输出方法输出.a = Int(Rnd * (40 - 1 + 1) + 1)Print aa = Int(Rnd * (40 - 1 + 1) + 1)Print aa = Int(Rnd * (40 - 1 + 1) + 1)Print aa = Int(Rnd * (40 - 1 + 1) + 1)Prin

2、t a4.7.3 循循 环环 结结 构构开始开始结束结束T0 初值初值终值终值 ( 终值终值=0 死循环死循环 当循环终值是一个变量时,在第一次运行时取走当循环终值是一个变量时,在第一次运行时取走该变量中的值后,该变量中的值即便有修改,但该变量中的值后,该变量中的值即便有修改,但不再影响循环节奏。不再影响循环节奏。M=5For I=1 To M M=M+1 print I,MNext I 即即: For I=1 To 5 在循环体内,循环变量可多次引用;但最好不要对在循环体内,循环变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。其赋值,否则影响原来的循环控制规律。For I=1

3、 To 5 I=I+2 Print INext I For I=1 To 5 I=I-1 Print INext I 输出I=?输出I=?【例例4-3】编程求自然数编程求自然数10的阶乘。的阶乘。Private sub Form_Click( ) Dim I% , S%, T% T为每一项为每一项 S=1 :T=1 For Next Print “S=”;SEnd Sub For I I=1 To 10 Step 1 S=S*T T=T+1Next I IS = S * I I此时,T=I?分析分析: 每一项和每次相乘的积都是变化量每一项和每次相乘的积都是变化量因此,需要两个变量因此,需要两个

4、变量 用用T表示每一项的值表示每一项的值:T=T+1 用用S表示累加之和表示累加之和:S=S*T 循环终止条件循环终止条件: 循环次数循环次数100 初始化初始化: S=1【例例4-3】编程求自然数编程求自然数n的阶乘。的阶乘。Private sub Form_Click( ) Dim I% , S%, n% S=1 For I=1 To 10 Step 1 S=S* I Next I Print “S=”;SEnd Sub n =InputBox(“n=”)n+ ) 1(1.431321211nn设设s=123n ,求求s不大于不大于6000时最大的时最大的n和和s.思思 考:考:思考思考:

5、 这是连乘器?加法器?计数器?这是连乘器?加法器?计数器?循环次数循环次数能否能否确定?确定?循环终止条件是什么?循环终止条件是什么?1. ForNext控制结构能否解决?控制结构能否解决?( (一般用于循环次数未知一般用于循环次数未知) ) 讨论讨论While-Wend 进入循环体之前,应正确设置循环条件。如果条件进入循环体之前,应正确设置循环条件。如果条件一开始就不成立一开始就不成立(False),则一次循环体也不执行。,则一次循环体也不执行。 循环体内必须有修改循环条件的语句,确保循环体循环体内必须有修改循环条件的语句,确保循环体能正常执行和正常结束。能正常执行和正常结束。 先判断条件,

6、后执行循环体先判断条件,后执行循环体Do While|Until 条件条件 语句块语句块 Exit Do 语句块语句块 Loop 先执行循环体,后判断条件先执行循环体,后判断条件Do 语句块语句块 Exit Do 语句块语句块 Loop While|Until 条件条件 ( (一般用于循环次数未知一般用于循环次数未知) )直到型循环直到型循环代码代码2:Private Sub Form_Click() Dim i%, s& s = 1 : i=1 Do While s = 6000 s = s * i i = i + 1 Loop Print i - 2 , s /(i-1)End S

7、ub代码代码4:Private Sub Form_Click() Dim i%, s& s = 1: i=1 Do s = s * i i = i + 1 Loop Print i - 2 , s /(i-1)End Sub问题解决问题解决:代码代码1:Private Sub Form_Click() Dim i%, s& s = 1: i=1 While s=6000 s = s * i i = i + 1 Wend Print i - 2 , s /(i-1)End Sub代码代码3:Private Sub Form_Click() Dim i%, s& s = 1

8、 : i=1 Do s = s * i i = i + 1 Loop While s = 6000 Print i - 2 , s /(i-1)End Sub设设s=123n ,求求s不大于不大于6000时最大的时最大的n和和s.思考思考: :从键盘上输入字符从键盘上输入字符, ,以以“? ?”结束结束, ,并对输入的并对输入的字符分别统计字母和数字的个数。字符分别统计字母和数字的个数。思路思路:1.输入一个字符,进行判断是否结束?输入一个字符,进行判断是否结束?2.判断字符类型,分类统计个数,转到判断字符类型,分类统计个数,转到第第1步。步。Private Sub Form_Click( )

9、输入一个字符输入一个字符ch,判断并分类统计,判断并分类统计 以以“?”结束结束While Wend End Sub整理课件应用应用1: 我国有我国有13亿人口,按人口年增长亿人口,按人口年增长0.8%计算计算,多少年后我国人口超过多少年后我国人口超过26亿。亿。 x = 13 n = 0While x = 26 n = n + 1 x = x +x* 0.008 Wend Print n, xx = 1300000000 n = 0While x = 2600000000# n = n + 1 x = x + x * 0.008 Wend Print n, x整理课件应用应用2: 小红今年小

10、红今年12岁岁,父亲比她大父亲比她大30岁,编程计岁,编程计算父亲在几年后比她年龄大一倍,那时父算父亲在几年后比她年龄大一倍,那时父女的年龄各为多少?女的年龄各为多少?Private Sub Form_Click() Dim age As Integer Dim n As Integer age = 12 While age* 2 age + 30 age = age + 1 Wend Print 经过经过; age-12; 年年 Print 小红父女的年龄分别是小红父女的年龄分别是:; age+30; 和和;ageEnd Sub整理课件课堂思考:课堂思考:l有一段楼梯有一段楼梯, 若每步上若

11、每步上2阶阶, 则最后剩下则最后剩下1阶,阶,若每步上若每步上3阶阶, 则最后剩下则最后剩下2阶阶, 若每步上若每步上5阶阶,则最后剩下则最后剩下4阶阶, 若每步上若每步上6阶阶,则最后剩下则最后剩下5阶阶,只有每步上只有每步上7阶,正好阶,正好1阶不剩。请问,这段阶不剩。请问,这段楼梯共有多少阶?楼梯共有多少阶? n=7Do n = n + 1Loop Until (n Mod 2 = 1) And (n Mod 3 = 2) And (n Mod 5 = 4) And (n Mod 6 = 5) And (n Mod 7 = 0)思考思考:循环次数已知问题循环次数已知问题,能否使用能否使用

12、While或或Do呢呢?OK编程序计算:编程序计算:s=123410 。Private sub form_click( ) Dim i%, s& s=1 For i=1 to 10 step 1 s=s*i Next i Print s=; sEnd sub Private sub form_click( ) Dim i%, s& s=1 : i=1 While i=10 s=s*I i=i+1 Wend Print s=;sEnd sub Private sub form_click( ) Dim i%, s& s=1 : i=1 do While i=10 s=s*

13、i i=i+1 Loop Print s=; sEnd sub Private sub form_click( ) Dim i%, s& s=1 : i=1 do s=s*I i=i+1 Loop While i10整理课件课本课本P3 给定两个正整数给定两个正整数m和和n(mn),求它们的求它们的最大公约数和最小公倍数。最大公约数和最小公倍数。课课 后后 作作 业业辗转相除法辗转相除法, 课本课本P3 最小公倍数最小公倍数=两个正整数的乘积两个正整数的乘积/最大公约数最大公约数.整理课件辗转相除法:辗转相除法:求余数求余数: m除以除以n,并令,并令r为所得余数;为所得余数;余数为余

14、数为0?: 若若r=0,算法结束,算法结束,n即为答案;否则执行即为答案;否则执行;互换互换: 置置mn 和和 nr,转向,转向继续执行继续执行。NYrm除以除以n的余数的余数r = 0?n r输出输出n的值的值输入正整数输入正整数m和和n开始开始结束结束m n例例1-3: 给定两个正整数给定两个正整数m和和n,求最大公约数?,求最大公约数?Exit语句语句多种形式多种形式 作用:作用:End 语句语句多种形式多种形式 作用:作用:With语句语句作用作用等价等价28Private Sub Form_Click( ) For i=0 To 50 i=i+3 n=n+1 if i10 then

15、Exit For Next i Print n=; nEnd Sub1.当当i=0时时, i=i+3=3 , n=12.当当i=4时时, i=i+3=7 , n=23.当当i=8时时, i=i+3=11, n=3,循环结束循环结束29Private Sub Form_Click() Dim num% num = 0 While num = 2 num = num + 1 Print num; WendEnd Sub1.当当num=0时时, num=num+1=12.当当num=1时时, num=num+1=23.当当num=2时时, num=num+1=330Private Sub Form_

16、Click() Dim a%, b% a = 0: b = 1 Do a = a + b b = b + 1 Loop While a 10 Print a; bEnd Suba=0:b=11.当当a=0时时,a=1, b=22.当当a=1时时,a=3, b=33.当当a=3时时,a=6, b=44.当当a=6时时,a=10, b=5 循环结束循环结束31Private Sub Form_Click( ) Dim str1 As String Dim letter As Integer Dim number As Integer Dim other As Integer Dim n As In

17、teger Letter=0: number=0: other=0 Str1=InputBox(“输入字符串输入字符串=”,”输入框输入框”,”ab32-c,4d_5”) For n=1 to Len(str1) Select Case Mid(Str1,n,1) Case “A” to “Z”, “a” to “z” Letter=letter+1 Case 1 to 9 Number=number+1 Case else Other=other+1 End Select Next n End Sub 32 跳转跳转: Goto 标号标号1.当当n=1时时, sum=sum+n=1, n+1=22.当当n=2时时, sum=sum+n=3, n=n+1=33.当当n=3时时, sum=sum+n=6, n=n+1=4, 跳转结束跳转结束For 循环变量循环变量=初值初值 To 终值终值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论