VB第4章分支与循环结构课件

上传人:艳*** 文档编号:242969225 上传时间:2024-09-13 格式:PPT 页数:48 大小:387.50KB
返回 下载 相关 举报
VB第4章分支与循环结构课件_第1页
第1页 / 共48页
VB第4章分支与循环结构课件_第2页
第2页 / 共48页
VB第4章分支与循环结构课件_第3页
第3页 / 共48页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,分支结构,程序示例,循环结构,第四章,VB,的基本控制结构,程序控制结构:是语句排列和控制转移方向的描述,决定了程序执行的顺序。,三种基本控制结构:顺序、选择、循环,顺序结构:最基本、最简单的结构,按语句出现的先后顺序依次执行。,4.1,顺序结构,先对条件,测试,,根据测试的结果选择执行不同的分支,1.If,条件语句,2.Select Case,结构,4.2,选择结构,If,语句的三种形式:,If,条件语句,1. IfThen,结构 (单分支),2. IfThenElse,结构(双分支),3,. IfThenElseIf,结构(多分支),例:,If,score = 60,Then,Print ,祝贺你考试通过!,End If,Print “,继续努力!”,等价于,:,If,Score=60,Then,Print,“,祝贺你考试通过!,”,Print,“,继续努力,!,”,1. IfThen,结构 (单分支),格式,:(1) If,条件,Then,(A,组,语句),EndIf,(2),If,条件,Then,语句,执行规则:若,条件成立,执行,A,组语句,;,条件不成立,跳过,A,组语句,.,条件,A,组语句,T,F,例:,If score = 60 Then,Print score,Print ,祝贺你考试通过!,End If,Print “,继续努力!”,1. IfThen,结构,例,1,:输入两个数,分别放在,x,和,y,变量中,比较它们大小,,然后将大数放在,x,中,小数放在,y,中。,x y,x%=Text1.text,Y%=Text2.text,If x = 60 Then,Print “,祝贺你考试通过!”,Else,Print “,考试未通过,.”,End If,Print ,继续努力!,2.,IfThenElse,结构(双分支),格式:,If,条件,Then,A,组语句,Else,B,组语句,END,If,执行规则,:,条件,成立,执行,A,组语句,条件,不成立,执行,B,组语句,例,2,:计算分段函数:,Y=,x,2,+1 (x0),x,3,+3x (x=0),条件,A,组语句,T,F,B,组语句,If,条件语句,例:,(,思考,),输入二级考试成绩,要求显示对应三级制的,评定。评定条件为:,优:,Mark 90,等级: 通过:,60 Mark,90,未通过:,=90?,输入成绩,开始,输出“通过”,T,输出“优”,T,成绩,=60?,F,输出“未通过”,F,If,条件语句,.,3. If,Then,ElseIf,结构(多分支),Mark=Text1.Text,If Mark = 90 Then,Print ,优,ElseIf Mark = 60 Then,Print ,通过,Else,Print ,未通过,End If,若条件,1,与条件,2,换位,结果会怎样?,格式:,If,条件1,Then,(,A,组语句),ElseIf,条件,2 Then,(,B,组语句),ElseIf,条件,3 Then,(,C,组语句),Else,(,n,组语句),End If,If,条件语句,格式:,If,条件1,Then,A,组语句,ElseIf,条件,2 Then,B,组语句,ElseIf,条件,3 Then,C,组语句,Else,n,组语句,End If,3. If,Then,ElseIf,结构,注意:,多分支语句中,有多个分,支同时满足,只执行,第一,个,与之匹配的语句块。,注意,ElseIf,的写法,If,条件语句,【,例,4.3】,用键盘输入一字符,判断该字符是小写字母、大写字母、数字字符还是其他字符,并作相应的显示。,3.,IfThenElseIf,结构,If,条件语句,4. If,语句的嵌套,If,语句的嵌套是指,if,或,else,后面的语句块中又包含,If,语句。,If,条件语句,使用嵌套语句时应注意以下问题:,(,1,)如果存在嵌套时,语句中的每一个,Else,必须和一个,If,相对应,应避免产生混乱。,在书写时,可以将同一层的,If,子句和,Else,子句左对齐,,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚便于阅读和查错。,(,2,)每一个双分支结构都必须以,If,开始,以,End If,结束。,(,3,)内层嵌套的结构中除了满足该层规定的条件外, 还必须首先满足外层结构中相应位置的条件。,(,4,),VB,中对块,嵌套的层数没有限制,,在嵌套的结构中仍然可以继续嵌套其他的结构,.,(,5,)利用双分支,If,语句的嵌套可以解决,“,多分支,”,选择的问题。,Select Case,测试表达式,Case,测试项,1,A,组语句,Case,测试项,2,B,组语句,Case Else,n,组语句,End Select,说明:,测试表达式可以是数值型或字符型,测试项的取值必须与测试表达式,的值类型相同,不能包含逻辑运算符常用形式为:,具体取值,用逗号隔开,如:,1,,,5,,,9,连续的范围:界,1 TO,界,2,如:,12 To 20,满足某个条件:,Is,运算符,如:,Is10,三种形式可以组合使用,Select Case,语句,Select Case,结构(情况选择语句),例:输入二级考试成绩,要求显 示对应三级制的评定。,Mark=Val(Text1.Text),Select case Mark,case is=90,Print ,优,case 90 to 60,Print “,通过,Case Else,Print “,未通过,End select,对于多分支选择结构,用,Select Case,语句比用,IfThenElseIf,语句更为直观,程序可读性强。,两者的区别在于:,Select Case,语句只对单一表达式求值,,并根据求值结果执行不同的语句块,而,IfThenElseIf,语句可以对多个不同的表达式求值,所以,当对多个条件进行判断时,只能用,IfThenElseIf,语句。,4.3,循环结构,循环,:,是在指定的条件下多次重复执行一组语句,1. For,Next,2. Do,Loop,3.,循环嵌套,4.,其他辅助控制语句,VB,提供了三种不同风格的循环结构,分别是:,计数循环(,ForNext,循环),当循环(,While,循环),Do,循环(,DoLoop,循环),其中,计数循环常用于已知循环次数,的循环,而,当循环和,Do,循环适合于,循环次数未知,只,知道循环结束条件,的循环。,For,循环变量,=,初值,TO,终值,Step,步长,语句块,Exit For,语句块,Next,循环变量,For,循环格式:,For,循环,-,计数型循环,步长省略,,默认为,1,循环体,(,1,)系统将初值赋给循环变量,并自动记下终值和步长。,(,2,)判断循环变量是否,超过,终值:未超过终值,执行一次循环体;否则,结束循环,(,3,)执行,Next,语句,,将循环变量加上一个步长。,(,4,)转到(,2,),继续执行。,(,5,)结束循环,执行,Next,后面的语句。,循环变量,=,初值,循环变量是否,到达终值,循环体,循环变量,=,循环变量,+,步长,True,False,程序代码:,Dim I%, s %,For I =,1 To 10 step 1,Next I,Print I, s,例,1:,求,1+2+3+4+,+10,之和,.,分析,:,重复过程,(,循环体,):,s,s,+I,初值、终值和增量,:,1,、,10,、,1,初值与终值换位,可以吗?,循环体的执行次数是多少,?,输出的,I,、,S,的值是多少,?,For I =,1 To 10,执行多少次?,s = s,+,I,For,I=10 To 1 Step -1,For,循环,For,循环变量,=,初值,TO,终值,Step,步长,语句块,Exit For,语句块,Next,循环变量,循环体,Dim I As Integer, s As Integer,For I =,1 To 10,s = s,+,I,Next I,Print I, s,例,2:,求,10,!,分析,:,重复过程,:,*,初值、终值与增量不变,例,1:,求,1+2+3+4+,+10,之和,.,分析,:,重复过程,(,循环体,):,+,初值、终值和增量,:,1,、,10,、,1,Dim I As Integer, s As,Integer,For I = 1 To 10,s = s,*,I,Next I,Print I, s,s=1,For I = 1 To 10,For I = 1 To 10,s=1,For,循环,功能说明:,(,1,)在执行过程第二步中,所说的,“,超过,”,包含两种情况,步长为正数时,循环变量大于终值为,“,超过,”,。,步长为负数时,循环变量小于终值为,“,超过,”,。,(,2,)终值和初值的取值有以下情况:,步长为正数时,终值应该大于初值,否则循环体不会被执行。,步长为负数时,终值应该小于初值,否则循环体不会被执行。,当循环变量等于终值时,不管步长是正数是负数,均执行一次循环体。,(,3,)循环次数由初值、终值和步长确定,计算公式为:,循环次数,= Int,(终值,-,初值),/,步长),+ 1,(,4,),For,语句和,Next,语句必须成对出现,不能单独使用。,(,5,)循环变量在循环体内可以被引用参与运算。,(,6,),Exit For,表示当遇到该语句时,退出循环体,继续执行,Next,语句下面的代码;,(,7,)当循环变量为整型,而循环参数为带小数点的实数时系统将按照,CInt,函数或,CLng,函数的方式,将其转换为与循环变量相同的整型数。,Private Sub Command1_Click(),Dim i As Integer,For i = 7 To 8.6 Step 2.5,Print i,Next i,End Sub,例:分析下列程序段的输出结果:,Dim I As Integer, J As Integer,J = 2,:,m=6,For I = 0 To m Step J,I = I + 1,J = J + 1,m=m+1,Next I,print I,,,J, m,For,循环,【,例,4.6】,输入,20,个整数,分别计算并输出正数和负数的平均值。,1. Do,While,循环体,Loop,2. D0,循环体,Loop While ,3. Do Until ,循环体,Loop,4. Do,循环体,Loop Until ,DoLoop,循环,-,条件型循环,1.,While,循环,Do While,循环体,Exit Do,Loop,执行过程,:,(先判断,后执行),先判断循环条件,若为真,:,执行循环体,再判断循环条件,否则,跳过循环体,执行,Loop,之后语句,循环条件,语句块,T,F,语句块,F,Exit Do,T,DoLoop,循环,Do While,循环体,Exit Do,Loop,Dim I As Integer, s As Integer,For I = 1 To 10,s = s + I,Next I,Print I, s,例,1:,求,1+2+3+4+,+10,的和,.,Dim I,As Integer, s,As Integer,I=1,Do While,Loop,Print I,s,s=s+I,I=10,I=I+1,I=11,(1),循环体执行了几次,?,(2),没有,I=1,会怎样,?,(3),将,Print,语句,移到,Loop,的,前面结果怎样?,(4),I,先赋值为1,1,结果如何?,1.,While,循环,DoLoop,循环,D0,循环体,Exit Do,Loop While,执行过程,:,(先执行,后判断),先执行循环体,再判断循环条件,若为真, 继续执行循环体,;,否则,结束循环,执行,Loop,之后语句,循环条件,语句块,T,F,语句块,F,Exit Do,T,1.,While,循环,DoLoop,循环,D0,循环体,Exit Do,Loop While ,例,4:,修改例,3,Dim I,As Integer,s As Integer,I=1,Do,While I=10,s=s+I,I=I+1,Loop,Print I,s,Dim I,As Integer,s As Integer,I=1,Do,s=s+I,I=I+1,Loop,While I=10,Print I,s,(1),循环体执行几次?,(2),将,I,先赋值为,11,,,执行结果如何,?,1.,While,循环,DoLoop,循环, Do While,循环体,Exit Do,Loop,D0,循环体,Exit Do,Loop While,区别,:(,1),执行顺序不同,形式一,:,先判断,后执行循环体,;,形式二,:,先执行循环体,后判断,(2),执行次数不同,(特殊情况下),形式一,:,条件不满足,循环体可能一次也不执行,形式二,:,不论条件如何,至少执行一次,1.,While,循环(当型循环),DoLoop,循环,执行过程,:,(先判断,后执行),先判断循环条件:,条件为,假,:,执行循环体,然后再判断条件,.,条件为,真,:,跳过循环体,执行,Loop,之后语句,Do Until,循环体,Exit Do,Loop,2.,Until,循环,(直到型循环),循环条件,语句块,F,T,语句块,F,Exit Do,T,DoLoop,循环,Do Until,循环体,Exit Do,Loop,例,5:,修改上例,Dim I as integer,s As Integer,I=1,Do While I=10,s=s+I,I=I+1,Loop,Print I,s,Dim I as interger,s As Integer,I=1,Do Until,s=s+I,I=I+1,Loop,Print I,s,条件应该如何写出,?,显示的,I,、,S,值与,上例一样吗?,Do,循环体,Loop Until ,I10,DoLoop,循环,2.,Until,循环,几种形式比较,:,Do,While,循环体,Loop,(,While ,),Do,Until,循环体,Loop,(,Until ),区别,:,While,条件为,真,时执行循环体,否则退出循环,Until,条件为,假,时执行循环体,否则退出循环,关系:,While,和,Until,可以相互,转换,,但循环条件,取反,DoLoop,循环,1.,GoTo,语句,2.,Exit,语句,满足循环条件的情况下,提前跳出循环体,结束循环。,两种形式:,Exit For,、,Exit Do,作用:无条件的转移到标号或行号指定的语句,语法:,GoTo ,标号,|,行号,100,If I = 100 Then,s = s + I,I = I + 2,GoTo 100,End If,其他辅助控制语句,Dim I As Integer,If I mod 17 =0 then,print I,end If,For I=100 to 200,Next I,Exit for,分析:,重复工作:判断每个数除,17,的余数是否为,0,初值、终值和增量:,练习:,求出,100,200,之间的,第一个,能被,17,整除的整数。,其他辅助控制语句,循环的嵌套:,在一个循环体内又包含了一个完整的循环结构,4.4,循环嵌套,For I = 1 To 9,For J = 1 To I,s = I & & J & = & I * J,Picture1.Print Tab(J - 1) * 8 + 1); s;,Next J,Picture1.Print,Next I,注意,:,内、外循环变量不能同名,外循环必须完全包含内循环,不能出现交叉,在循环体中遇到,Exit For (Do),时,则只能跳出当前一层循环,外层循环执行一次,内层循环要从头到尾执行一遍,【,例,4.9】,编写程序,找出,100,以内所有满足,a,2,+b,2,=c,2,且,ab,的自然数组合。,解题的基本思想是: 一一列举各种可能的情况,并判断哪种情况是符合要求的解,这种算法称为,穷举法,(又称“枚举法”),通常采用循环结构来实现。,本程序使用了三重循环,循环变量在,1100,之间变化,内循环体被执行了,100*100*100,次,。,累加和、连乘积,求素数,最大公约数、最小公倍数,穷举法,4.5,程序示例,要求掌握的几个算法:,1.,累加、连乘,例,1,:编写一个大奖赛统计选手得分的程序。,要求单击,“,得分显示,”,按钮,则可以利用随机函数产生,10,个,80,100,分之间的随机整数,输出在窗体上,并将计算选手的最后得分也在窗体上显示。,分析:由随机函数生成,80,100,之间的,10,个数据,连续求和,求平均值,2.,求素数,素数,(,质数,),:一个大于等于,2,的整数,并且只能被,1,和自身,整除,而不能被其他整数整除的数。,N,是否为素数的判断算法:用穷举法,用,2,至,n-1,逐个去除整数,n.,若余数不为,0,,用下一个整数去除,直到,n,1,为止,否则进行标记,或退出循环,输出结果,为了压缩循环次数,可将判断范围从,2 - n-1,改为,2 - int(sqr(N),【,例,4.10】,编写程序,找出,10000,以内的所有素数并作相应显示,。,本例题可以用双重循环来实现,外循环用于对,210000,之间的数逐个进行判断,若是素数则将其添加到列表框中并作相应的计数,内循环用于判断每个数是否为素数。,3.,求最大公约数的算法,S1.,输入两个自然数,M,、,N,;,S2.,求,M,除以,N,的余数,R,;,S3.,使,M=N,,即用,N,代换,M,;,S4.,使,N=R,,即用,R,代换,N,;,S5.,若,R0,,则重复执行,S2,、,S3,、,S4,(循环),否则转,S6,;,S6.,输出,M,,,M,即为,M,和,N,的最大公约数。,Private Sub Form_Click(),m = Val(Text1),n = Val(Text2),If n = 0 Or m = 0 Then,Text3=,数据出错,End,End If,If m n,Do,用,doloop while,结构实现求最大公约数,R = m Mod n,m = n,n = R,Loop while R0,Text3.text=Cstr(m),End Sub,求二个正整数,m,和,n,的最小公倍数,求得最大公约数以后,将原两数相乘并除以最大公约数,就得到了最小公倍数。,4.,穷举法,穷举法:就是将可能出现的各种情况一一测试,判断是否,满足条件,For x = 0 To 100,For y = 0 To 100,For z = 0 To 100,If x + y + z = 100 And _,3 * x + 2 * y + 0.5 * z = 100 Then,Print x, y, z,End If,Next z,Next y,Next x,例:百钱买百鸡,假设:小鸡,5,角,/,只,公鸡,2,元,/,只,母鸡,3,元,/,只,现有,100,元钱要买,100,只鸡,编程列出所有可能的购鸡方案,分析:设母鸡、公鸡、小鸡分别买,X,、,Y,、,Z,只,X+Y+Z=100,3*X+2*Y+0.5*Z=100,For x = 0 To 33,For y = 0 To 50,If 3 * x + 2 * y + 0.5 * (100 - x - y)_,= 100 Then,Print x, y, z,End If,Next y,Next x,【,例,4.13】,随机生成,30,个三位正整数,将能被,3,整除、能被,7,整除的数找出并显示。,生成,m-n,之间的随机整数可使用以下公式:,Int(Rnd * (n-m+1) )+m,,,本例中,m=100,,,n=999,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!