
visualbasic程序设计语言教学课件作者王旭启第5章控制结构.ppt
103页第5章 控制结构,5.1 顺序结构程序设计 5.2 选择结构程序设计 5.3 循环结构程序设计 5.4 本章实例,5.1 顺序结构程序设计,5.1.1 顺序程序的结构 顺序结构就是一组逐条执行的可执行语句按照自然的顺序编写程序,再自上而下地执行其流程图如图5-1所示其中,A和B分别表示要执行的语句或语句块,箭头表示语句的执行方向下一页,返回,5.1 顺序结构程序设计,5.1.2 顺序程序结构设计的方法 顺序程序结构设计一般比较简单,其一般步骤为: (1)定义程序所需要的变量; (2)输入数据; (3)处理、计算数据; (4)输出数据 例5-1 设计程序,用来计算圆球的表面积和体积要求可以接收用户输入的圆球的半径长度,计算并输出圆球的表面积和体积下一页,返回,上一页,5.1 顺序结构程序设计,分析:可以使用一个文本框输入圆球的半径长,通过一个单精度变量获取文本框中的数值,利用数学公式对数据进行计算,用标签控件把结果显示出来已知圆球的半径R的值,求圆球的表面积和体积的公式为:S =4 * 3. 14 * R * R;V=4/3*3. 14*R*R*R (1)设计界面 在窗体上建立4个标签、1个文本框和2个命令按钮。
设置各对象的属性,如表5-1所示设计完成的界面如图5-2所示下一页,返回,上一页,5.1 顺序结构程序设计,(2)编写代码 双击“计算表面积”和“计算体积”按钮,在框架中输入代码如下: Dim R’ ‘全局变量 Private Sub Command1 Click() Dim S! R=Val ( Text1 .Text ) S=4*3. 14*R*R Label3. Caption = “圆球的表面积:” & Str(S) End Sub,下一页,返回,上一页,5.1 顺序结构程序设计,Private Sub Command2 Click() Dim V! R=Val ( Text1 .Text ) V=4/3*3. 14*R*R*R Label4. Caption = “圆球的体积:“ val( )是VB的一个内部函数,它的作用是将数字字符串转换为数值返回,上一页,5.2 选择结构程序设计,选择结构也称分支结构,是用来描述、处理分支现象的重要手段是学习VB程序设计基本思路和方法的重点在选择结构中,根据条件是否成立(条件为真为假),来选择执行多个分支中的某一分支的分支的语句与顺序结构不同,选择结构中的代码并不是依次顺序执行的,它能够根据给定的条件而选择执行不同的代码。
在计算机科学中,选择结构是用来描述自然界和社会生活中分支现象的重要手段和方法,它和我们的日常生活有密切联系生活中,我们也经常面对选择,需要对给定的条件进行分析、判断,并根据判断的结果采取不同的行动下一页,返回,5.2 选择结构程序设计,例如,在走到十字路口时,需要根据信号灯的情况来判断是否前行如果是红灯,则停止前行;如果是绿灯,则可以前行在设计程序时,也需要根据不同的情况采用不同的处理方法选择结构的特点是:根据所给定的条件为真(即条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作,并且任何情况下总有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性 本章中,将学会运用相关语句来设计选择结构程序下一页,返回,上一页,5.2 选择结构程序设计,5.2.1 条件表达式 条件表达式,即关系表达式 1.关系运算符 关系运算符的作用是对两个表达式的值进行比较,若关系成立,则返回True,否则返回FalseVB提供了6种关系运算符,如表5 -2所示 2.关系表达式 关系表达式是指用关系运算符将两个表达式连接起来的式子(例如2*32 +3),关系表达式的格式为: [ 表达式3).],下一页,返回,上一页,5.2 选择结构程序设计,例如:(a+b)(c+d)就是一个关系表达式。
在关系表达式中,应注意以下几点: (1)在关系表达式中,先进行算术运算,再进行关系运算例如,在式子“x+yz-d”中,先计算“x+y”和“z-d“,然后进行的比较 (2)运算的结果不是数值,而是一个逻辑值当关系成立时为真,其值为-1;当关系不成立时为假,其值为0 (3)关系运算符除了能对数值量进行比较外,还可以用来对字符串型量进行比较例如,“ good”“ well”比较的结果为真值-1下一页,返回,上一页,5.2 选择结构程序设计,5.2.2 简单的if语句 其语法格式为: IfThen 语句体 End if 或 If Then 语句体 第一种格式称为块结构,第二种格式称为单行结构下一页,返回,上一页,5.2 选择结构程序设计,这是一种最简单的if语句,只要条件为真或为非0数值,就执行then后的语句;当条件为假或是一个为0的数值时就执行if下面的语句其中,语句体可以是一条或多条语句当采用第二种格式时,所有的语句体必须写在同一行,用冒号隔开其流程图如图5-3所示 例5-2 输入x,计算y的值(即计算分段函数y的值)其中: 设计步骤如下: (1)建立应用程序用户界面并设置对象属性,如表5-3所示。
下一页,返回,上一页,5.2 选择结构程序设计,(2)编写事件代码命令按钮Command1的单击Click事件代码为: Private Sub Command1 Click() Dim x As Single,y AS Single ‘定义x,y为单精度数 x=Val ( Text1 .Text) ‘输入x的值 If x=0 Then y=x Else y=-x ‘判断并计算 Text2. Text=y ‘输出结果 Tekt2. Locked=True End Sub 程序运行结果如图5 -4所示下一页,返回,上一页,5.2 选择结构程序设计,5.2.3 双分支选择If…then … else结构 If…Then … Else语句属于双分支结构语句,书写格式也有两种:单行结构和块结构 其语法格式为: IfThen 语句体1 Else 语句体2,下一页,返回,上一页,5.2 选择结构程序设计,End if 或 If Then语句体1 else语句体2 同上,第一种格式称为块结构,第二种格式称为单行结构 说明:在“块结构”条件语句,If和End if必须成对出现。
当条件表达式的值为True时,执行语句体1;当条件表达式的值为False时,执行语句体2,如图5-5所示下一页,返回,上一页,5.2 选择结构程序设计,举个简单的例子:求X和Y中的最大数,将最大数存储在变量M ax中,用双分支结构语句实现: If XY Then Max=X Else Max=Y 或: If XY Then Max=X Else Max=Y End if,下一页,返回,上一页,5.2 选择结构程序设计,例5-3 判断文本框中输入的是否为数值型数据 设计步骤如下: (1)建立应用程序用户界面并设置对象属性,如表5-4所示 (2)编写事件代码命令按钮Command1的单击Click事件代码为: Private Sub Command1 Click() If isnumeric(text1)Then Maghox ”是数字” ‘弹出消息框,下一页,返回,上一页,5.2 选择结构程序设计,Else Maghox “不是数字” End if End Sub 程序运行结果如图5-6所示 本例中isnumeric ()函数是一个系统函数,用来判断一个数据是否为数字型数据,若是则返回true,否则返回false。
这里对文本框中的字符进行判断,如果输入的字符都是数字,则弹出的消息框提示“是数字”,否则提示“不是数字”下一页,返回,上一页,5.2 选择结构程序设计,5.2.4 多分支选择语句 虽然单行If语句使用方便,可以满足许多选择结构程序设计的需要,但是当Then部分和Else部分包含较多内容时,在一行中就难以容纳所有命令为此,VB提供了块If语句和select语句,将一个选择结构用多个语句行来实现如图5-7所示 1. If…Then… Elself语句(也称块If语句) (1)语法格式: IF条件1 Then 语句块1,下一页,返回,上一页,5.2 选择结构程序设计,[ElseIf 条件2 Then 语句块2] … [ElseIf 条件n Then 语句块n] … [Else 语句块n+1] End If,下一页,返回,上一页,5.2 选择结构程序设计,(2)说明: 语句块1到语句块n+1中只有一个被执行,无论哪个被执行后,流程都会到End If后下一条语句去 EIseIF不能写成Else If 当多分支中有多个条件同时满足,则只执行第一个与之匹配的语句块 因此,要注意对多分支的条件的书写次序,防止某些值被过滤。
If和End If必须成对出现下一页,返回,上一页,5.2 选择结构程序设计,(3)功能: 依次测试条件1到条件n,当条件i成立时(i为1到n之间的整数),执行语句块i,然后执行End If后面的下一条语句;如果所有的条件都不成立,并且 Else 语句块n+1 存在,则执行语句块n+1 例5 -4 输入某位学生的百分制成绩,要求输出成绩的等级:假设90分以上为A等,80~89分为B等,70 ~ 79分为C等,60 ~ 69为D等,60分以下为E等下一页,返回,上一页,5.2 选择结构程序设计,编写事件代码命令按钮Command1的单击Click事件代码为: Private Sub Form Click() Dim Score As Integer Score = InputBox( “ 请输入学生的百分制分数”) If Score=90 Then MsgfBox ”学生的成绩为A等” ElseIf Score=80 Then MsgBox ”学生的成绩为B等” Eleelf Score=70 Then,下一页,返回,上一页,5.2 选择结构程序设计,MsgBox ”学生的成绩为C等” ElseIf Score=60 Then MsgBox ”学生的成绩为D等” Else MsgBox ”学生的成绩为E等” End If End Snb 运行结果如图5-8所示:,下一页,返回,上一页,5.2 选择结构程序设计,与单行条件语句相比,块结构语句有很多优点。
例如块形式比单行形式提供了更好的结构和灵活性,它允许条件分支跨越数行同时,用块形式可以测试更为复杂的条件块形式使程序的结构按照逻辑来引导,而不是把多个语句放在一行中此外,使用块形式的程序一般容易阅读、维护和调试任何单行形式的条件语句都可以改写成块形式 2. Select Case语句 Select Case语句(又称为情况语句)Select Case语句是根据一个表达式的值,判断它的所属范围,选择执行不同的语句块,是多分支选择的另一种语句实现方法可以取代If… Then…ElseIf语句如图5-9所示下一页,返回,上一页,5.2 选择结构程序设计,(1)格式: Select Case测试表达式 Case表达式列表1 语句块1 Case表达式列表2 语句块2 … Case表达式列表n 语句块n [Case Else 语句块n+1] End Select,下一页,返回,上一页,5.2 选择结构程序设计,(2)功能: 根据测试表达式的值,依次与表达式列表1到表达式列表n所描述的“域值”范围进行比较,如果与表达式列表i的“域值”范围相匹配,则选择执行语句块i (i为1到n之间的整数),然后到End Case后下一条语句去。
如果与所有表达式列表的“域值”范围都不匹配,并且Else语句块n+1存在,则执行语句块n+1,然后到End Case后下一条语句去其流程见图: (3)说明: ①表达式列表1是由逗号分。












