第六章vb控制结构.ppt

上传人:sccc 文档编号:5667387 上传时间:2023-08-07 格式:PPT 页数:45 大小:710.01KB
返回 下载 相关 举报
第六章vb控制结构.ppt_第1页
第1页 / 共45页
第六章vb控制结构.ppt_第2页
第2页 / 共45页
第六章vb控制结构.ppt_第3页
第3页 / 共45页
第六章vb控制结构.ppt_第4页
第4页 / 共45页
第六章vb控制结构.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第六章vb控制结构.ppt》由会员分享,可在线阅读,更多相关《第六章vb控制结构.ppt(45页珍藏版)》请在三一办公上搜索。

1、第六章 Visual Basic 控制结构,刘杉,内容提要,选择控制结构多分支控制结构For循环控制结构当循环控制结构Do循环控制结构多重循环,选择控制结构,单行结构条件语句格式If 条件 then 语句 else 语句,4.2.1 单分支IfThen语句 If Then 语句块 End If 或 If Then,例:已知两个数x和y,比较它们的大小,使得x大于y.If xy Then t=x:x=y:y=t End If 或 If xy Then t=x:x=y:y=t,选择控制结构,双分支结构IfThenElse语句 If Then Else End If If Then Else,双分支

2、选择结构执行过程,IF条件语句,例如:输出x,y两个中值较大的一个值。IF XY Then Print XElse Print YEnd If也可以写成如下的单行形式:IF XY Then Print X Else Print Y,IF条件语句,IIf函数可用来执行简单的条件判断操作,它相当于IFThen.Else结构。IIF函数的使用格式:IIF(,)说明:(1)与IF语句中的表达式相同,通常是关系表达式、逻辑表达式,也可为算术表达式。如果是算术表达式,其值按非0为True,0为False进行判断。(2)当为真时,函数返回的值,当为假时,函数返回的值。(3)、可以是任何表达式。,IIF函数,

3、多分支结构IfThenElseIf语句 形式:If Then ElseIf Then Else 语句块 n+1 End If,执行过程,使用IF语句实现的程序段如下:If x=90 then Print 优秀ElseIf x=80 Then Print 良好 ElseIf x=70 Then Print 中等 ElseIf x=60 Then Print 及格 Else Print 不及格End If,例4-2:输入一学生成绩,评定其等级。方法是:90100分为“优秀”,8089分为“良好”,7079分为“中等”,6069分为“及格”,60分以为“不合格”,Select Case语句(情况语句

4、)形式:Select Case 变量或表达式Case 表达式列表1语句块1Case 表达式列表2语句块2Case Else语句块n+1End Select,数值型或字符串表达式,多分支选择语句Select语句,说明:与同类型的下面四种形式之一:表达式 A+5 一组枚举表达式(用逗号分隔)2,4,6,8 表达式1 To 表达式2 60 to 100 Is 关系运算符表达式 Is 60,例如:将例4-2 使用select case.语句来实现的程序段如下:Select Case x Case 90 to 100 Print 优秀 Case 80 to 89 Print 良好 Case 70 to

5、79 Print 中等 Case 60 to 69 Print 及格 Case Else Print 不及格End Select,选择结构的嵌套下面是两种正确的嵌套形式:(1)IF Then.IF Then Else.End If.Else.IF Then.Else.End If.End IF,(2)IF Then.Select Case Case IF Then Else.End If Case.End Select.End IF,注意:只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也可以任意多。对于多层IF嵌套结构中,要特别注意IF与Else的配对关系,一

6、个Else必须与IF配结,配对的原则是:在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。,For循环语句(一般用于循环次数已知)形式:For 循环变量初值 to 终值 Step 步长 语句块Exit For 语句块 Next 循环变量,For.Next循环结构,循环次数,例:For I=2 To 13 Step 3 Print I,Next I Print“I=“,I,循环执行次数 输出I的值分别为:2 5 8 11 出了循环输出为:I=14,例5-1 编程计算:S=1+2+3+100,Dim S%,I%S=0 累加前变量S为0For I=1 to 100 S=S+INex

7、t IPrint S=,S,例5-2的算法流程图,WhileWend语句 使用格式如下:While Wend 说明:该语句的功能与Do While.Loop实现的循环完全相同。,当循环控制结构,形式1:(当型循环)Do While|Until 语句块 Exit Do 语句块 Loop,DoLoop循环语句使用形式,Do循环控制结构,形式2:(直到循环)Do 语句块 Exit Do 语句块Loop While|Until,Do UntilLoop执行过程 DoLoop Until执行过程,说明:(1)当使用While构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。(2)

8、当使用Until 构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。,(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。(4)语句Exit Do的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。,例5-3 将一个十进制数转换成二进制。,算法流程图,分析:将一个十进制数转换成二进制采用连除2取余数的方法,即将十进制数除以2取余数,直到商为0,然后所得的余数即为二进制数各位的数码,从右到左排列,

9、第一次除2的余数在最左边。算法设计如下:用变量Dec表示十进制数,Bin表示转换所得的二进制数字符串。(1)输入十进制Dec(2)Dec除以2得余数Res,商又赋值给Dec;让Bin=Res&Bin(3)若Dec=0,则算法结束;否则执行(2)算法的N-S流程图如图5-7所示。,将一个十进制数转换成二进制的程序如下:,Private Sub Form_Click()Dim Dec As Integer 表示十进制数 Dim Bin As String 转换为二进制表示 Dim Res As Integer Dec=Val(InputBox(输入一个十进制数Dec=?)Print 十进制数:;D

10、ec Do Res=Dec Mod 2 求出除以2的余数 Bin=Res BinEnd Sub,For Each Next语句 For Each Next语句语法格式如下:For Each In 语句块 Exit For 语句块 Next,For Each.Next 循环与 For.Next 循环类似,但它对数组或对象集合中的每一个元素重复执行一组语句,而不是重复语句一定的次数。如果不知道一个集合有多少元素,For Each.Next 循环非常有用。,例5-4 系统对象Controls是包含了窗体中所有控件的集合对象。使用For Each.Next来输出窗体上所有控件的名称和在窗体中的位置(T

11、op及Left属性)。Dim x As Control 定义X为Controls对象集合Private Sub Form_Click()For Each x In Form1.Controls Print x.Name,x.Left,x.Top Next xEnd Sub,例5-5 使用For Each.Next对数组元素进入操作。下面是一个给数组输入和输出数组元素的程序。Private Sub Command1_Click()Dim a(10)As IntegerDim fnFor Each fn In a fn=Val(InputBox(请输入a(&fn&)=)Print fnNext f

12、nEnd Sub,循环的嵌套多重循环结构 如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:,多重循环,(1)For I=.For J=.Next J.Next I,(2)For I=.Do While/Until.Loop.Next I,(3)Do While.For J=.Next J.Loop,(4)Do While/Until.Do While/Until.Loop.Loop,例如:打印九九乘法表.For i=1 To 9 F

13、or j=1 To 9 se=i Next j Picture1.Print Next i,对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转向内循环.下面是正确的嵌套,For i=1 To 10 For j=1 To 20 Next i Next j,For i=1 To 10 For i=1 To 20 Next i Next i,下面是不正确的嵌套,对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;(3)不能从循环体

14、外转向循环体内,也不能从外循环转向内循环.,例5-6,编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个三位数,其各位数字立方和等于该数字本身。例如,153是水仙花数,因为:,循环结构与选择结构的嵌套,在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。,(1)For I=IF Then End IF Next I,(6)IF Then For I=End IF Next I,(5)Select Case For I=Case Case Next I End S

15、elect,(3)For I=IF Then Next I End IF,(2)IF Then For I=Next I End IF,(4)For I=Select Case Case Case End Select Next I,应用举例,累计求和、求乘积、计数等问题,例5-7 编程序计算:,此类问题都要使用循环,根据问题的要求,确定循环变量的初值、终值或结束条件及用来表示计数、和、阶乘的变量的初值。,应用举例,素数与哥德巴赫猜想,判断一个给定的整数是否为素数。,算法思路:素数指除了能被1和自身外,不能被其他整数整除的自然数。判断整数N是不是素数的基本方法是:将N分别除以2,3,N-1,若

16、都不能整除,则N为素数。因为N=Sqr(N)*Sqr(N),所以,当N能被大于等于Sqr(N)的整数整除时,一定存在一个小于等于Sqr(N)的整数,使N能被它整除,因此只要判断N能否被2,3,Sqr(N)整除即可。算法流程图如下:,Dim N%,I%,K%N=Val(InputBox(N=?)K=Int(Sqr(N)For I=2 To K If N Mod I=0 Then Exit ForNext IIf IK Then Print N;是素数Else Print N;不是素数End If,算法流程图,程序代码:,应用举例,例5-10 编一程序验证哥德巴赫猜想:一个大于等于6的偶数可以表示

17、为两个素数之和。例如:6=3+3 8=3+5 10=3+7,算法设计:设N为大于等于6的任一偶数,将其分解为N1和N2两个数,使用N1+N2=N,分别判断N1和N2是否为素数,若都是,则为一组解。若N1不是素数,就不必再检查N2是否素数。先从N1=3开始,直到N1=N/2为止。算法流程图如图4-29所示。将程序代码写到窗体的单击事件中。,实现上面算法的程序代码如下:,应用举例,Private Sub Form_Click()Dim N%,N1%,N2%,I%,K1%,K2%N=Val(InputBox(输入大于6的偶数)For N1=3 To N 2 Step 2 K1=Int(Sqr(N1)

18、For I=2 To K1 判断N1是否是素数 If N1 Mod I=0 Then Exit For Next I If I K1 Then 如果N1为素数,将N分解为N1+N2 N2=N-N1 K2=Int(Sqr(N2)For I=2 To K2 判断N2是否是素数 If N2 Mod I=0 Then Exit For Next I If I K2 Then 如果N2也为素数,则打印输出 Print N&=&N1&+&N2 End If End If Next N1End Sub,应用举例,打印有规律图案 例5-11 打印由数字组成的如下所示金字塔图案。,应用举例,9 888 7777

19、7 6666666 555555555 44444444444 3333333333333 222222222222222 11111111111111111,穷举法,穷举法(又称“枚举法”)的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解,这是一种“在没有其它办法的情况的方法”,是一种最“笨”的方法,然而对一些无法用解析法求解的问题往往能奏效,常常采用循环来处理穷举问题。例5-12 将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?,应用举例,字符串处理,例5-13 统计一个文本框中英文单词的个数。设单词由“空

20、格”、“逗号”、“分号”或“感叹号”作分隔符,回车符,换行符也是单词分隔符。,应用举例,例5-14 字符的加密和解密加密算法是:将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式:c=chr(Asc(c)+k)例如:设序数k为5,这时 A F,a f,B G 当加序数后的字母超过Z或z则 c=Chr(Asc(c)+k-26)例如:You are good Dtz fwj ltti 解密算法:解密为加密的逆过程 将每个字母C减(或加)一序数K,即 c=chr(Asc(c)-k),例如:序数k为5,这时 ZU,zu,YT当加序数后的字母小于A或a则 c=Chr(Asc(c)-k+26),应用举例,几种循环语句比较,本章小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号