VB第4章选择结构程序设计.ppt
Visual Basic程序设计第4章 控制结构程序设计,计算机科学学院,教师:张翼凌,4.1 关系运算与逻辑运算,4.2 选择结构程序设计,4.3 多分支结构程序设计,4.4 For-Next循环,Visual Basic程序设计第4章 控制结构程序设计,4.6 列表框和组合框,4.7 多重循环,4.8 转移控制语句,4.9 常用算法(1),4.5 Do-Loop循环和While-Wend循环,本章目标,教学要求:(1)掌握“条件”的正确设置(2)使用If语句和Select Case语句实现程序分支选择,重点:使用If语句和Select Case语句实现程序 分支选择难点:多分支选择结构,选择结构是结构化程序设计的基本结构之一,执行选择结构模块中的语句,是根据判断条件的真假来选择执行不同的分支。选择结构的条件是一个表达式,可以是算术表达式、关系表达式、逻辑表达式。,4.1 关系运算与逻辑运算,关系运算符也称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个逻辑值,即真(True)或假(False)。一般以-1表示逻辑值“真”,以0表示逻辑值“假”。关系运算的结果若是任何非零值,也被认为是逻辑值“真”。,4.1.1 关系运算符与关系表达式,4.1 关系运算与逻辑运算,逻辑运算也称为布尔运算,4.1.2 逻辑运算符与逻辑表达式,4.1 关系运算与逻辑运算,1.逻辑运算符,逻辑运算符的优先顺序依次是:逻辑非(Not)、逻辑与(And)、逻辑或(Or)。,Not 3 5,例如:,True,4.2 选择结构程序设计,4.2.1 单选按钮、复选框及框架控件,默认名称:Optionx(x为1,2,3.)。功能:用于从一组选项中选择其中一项,当某一项被选中时,其他选项自动变为不选.,单选按钮(OptionButton):,4.2 选择结构程序设计,1.单选按钮的属性,Caption属性:设置单选按钮的标题Enabled属性:设置单选按钮是否为活动状态,True设置为活动状态(默认)格式:单选按钮名.Enabled=Boolean值,Caption属性,4.2 选择结构程序设计,1.单选按钮的属性,Value属性:设置单选按钮是否为选中,True为选中,则其他按钮的Value属性自动为False。如果该按钮被选中,按钮的中心有个小圆点,如果设置为false,即按钮是关闭的,按钮是一个圆圈。格式:单选按钮名.Value=Boolean值,Alignment属性:确定单选按钮在标题的左边还是右边,可在设计时设置,也可以在运行期间设置。格式为:对象.Alignment=值,1.单选按钮的属性,4.2 选择结构程序设计,常量 值 功能 vbLeftJustify 0 控件在左,标题在右 vbRightJustify 1 控件在右,标题在左 Style属性:用来指定复选框或单选按钮的显示方式,以改善视觉效果。,1.单选按钮的属性,4.2 选择结构程序设计,常量 值 功能vbButttonStandard 0 标准方式vbButtonGraphical 1 图形方式,1.单选按钮的属性,4.2 选择结构程序设计,Style属性取值,使用Style属性时,注意:Style是只读属性,只能在设计时用。,Click事件:即鼠标单击事件,单击单选按钮时执行对应的程序代码。,2.单选按钮的事件,4.2 选择结构程序设计,例如:在当前窗体上,有1个文本框,3个单选按钮,要让其运行后,分别选中不同的单选按钮,文本框中的文本可以以不同的字号显示。,单选按钮,Private Sub Option3_Click()Text1.FontSize=20End Sub,Private Sub Option1_Click()Text1.FontSize=12End Sub,Private Sub Option2_Click()Text1.FontSize=16End Sub,4.2 选择结构程序设计,4.2.1 单选按钮、复选框及框架控件,默认名称:Checkx(x为1,2,3.)。功能:与单选按钮不同,可以从一组选项中选择其中的多项。,复选框(CheckBox):,Caption属性:复选框的标题 Value属性:设置复选框是否为选中 0:没有选择该复选框 1:表示选中该复选框 2:表示该复选框被禁止 格式:复选框名.Value=0(1、2)Enabled属性:设置复选框是否为活动状态,True设置为活动状态(默认)格式:复选框名.Enabled=Boolean值,1.复选框的属性,4.2 选择结构程序设计,Alignment属性Style属性 以上两个属性同单选按钮类似,1.复选框的属性,4.2 选择结构程序设计,4.2 选择结构程序设计,Click事件:即鼠标单击事件,单击复选框时执行对应的程序代码。,2.复选框的事件,3.框架控件的属性,4.2 选择结构程序设计,默认名称:Framex(x为1,2,3.)。功能:框架是VB中最简单的控件,在程序中起着美观界面和对程序分组的作用。是把同类型控件组合在一起,形成一个分组,当框架移动时,组内的控件也跟着一起移动。,框架控件(Frame):,Caption属性:框架控件的标题Enabled属性:设置框架是否为活动状态,True设置为活动状态(默 认),false框架内所有的对象 都被屏蔽,框架的属性及事件,4.2 选择结构程序设计,条件语句也称为If语句.If语句有两种格式,一种是单行结构条件语句,另一种是块结构条件语句。,条件语句,程序3结构:顺序结构、选择结构、循环结构顺序结构:执行过程的次序从上到下,从左到右选择结构:对给定的条件进行分析、比较和判断,并根据 判断结果采取不同的操作,这样的问题可以通 过选择结构来解决,是通过条件语句来实现。,4.2 选择结构程序设计,单行结构条件语句的特点是语句的各部分均写在同一行上,又称为行If语句。格式:If 条件 Then 语句组1 Else 语句组2,4.2.2 单行结构条件语句,例如:IF x 100 Then y=1 Else y=2,说明:可以没有Else部分,简化为:if 条件 Then 语句组1,例:If X10 Then Print X,4.2 选择结构程序设计,又称为块If语句,常用于对多个条件进行判断,其语言结构接近于人的思维和表达方式。,4.2.3 块结构条件语句,格式:If Then ElseIf Then ElseIf Then Else End If,如果,那么,另外如果,否则另外,结束假设,4.2.3 块结构条件语句,说明:1、在块结构的条件语句中,ElseIf子句的数量没有限制,可以根据需要加入任意多个ElseIf子句。2、块结构条件语句中的ElseIf子句和Else子句都是可选的。可以省略:,注意:(1)ElseIf不能写成Else If,即中间不能有空格。(2)在书写时,可以将If语句、ElseIf子句、Else子句、和End If语句左对齐,而各语句组向右缩进若干空格,以使程序结构更清楚。,注意:(3)严格按格式要求书写,不可随意换行或将两行合并成一行。例如,对于条件结构:If x=0 Then y=1 Else y=2 End If 以下两种写法都是错误的:,写法一:If x=0 Then y=1Else y=2End If,写法二:If x=1 Then y=10 Else y=20End If,If Then 语句组1Else 语句组2End If,比较:单行、块结构条件语句,If Then 语句组1 Else 语句组2,IF判断语句使用块形式,,IF判断语句使用单行形式,If Then 语句组1End If,Else 语句组2可以省略,If Then 语句组1,IF判断语句使用块形式,,IF判断语句使用单行形式,y=,x+3x2(x=0),sin x-x3(x 0),If x0 Theny=sin(x)x3Elsey=x+3*x2End If,计算分段函数,举例:用条件语句计算分段函数,If x0 Then y=sin(x)x3 Else _y=x+3*x2,单行,If块结构,思考:某班学生成绩:90分以上优秀,80分以上良好,60分上合格,60分以下不合格。,If x=90 Then y=优秀ElseIf x=80 Then y=良好 ElseIf x=60 Then y=合格Else y=不合格End If,If X Y Then Max=XElse Max=YEnd If,Max=IIf(X Y,X,Y),y=IIf(x=1,tan(x+1)+3*x2,sin(x)x3+x),条件,True部分,False部分,4.2 选择结构程序设计,4.2.4 IIf函数,例:某班学生成绩。90分以上优秀,60分以下不合格,其余合格。,If x=60 Then If x=90 Then y=优秀 Else y=合格 End IfElse y=不合格End If,4.2.5 If语句的嵌套,Case后的表达式形式一组枚举表达式:Case 2,5,8表达式1 To 表达式2:Case 10 To 20比较范围:Case Is、=、=如:Case Is=10 注意:Case Is=0 与 Case 0 相同 测试表达式的类型应与Case后表达式类型一致,且三种形式可以混用,如:Case Is-5,0,5 To 100,4.3 多分支结构程序设计,2006年4月选择题20题,在窗体上画1个命令按钮和1个文本框Private Sub Commandl_lick()x=Val(Text1.Text)Select Case x Case 1,3 y=x*x Case Is=10,Is=-10 y=x Case-10 To 10 y=-x End SelectEnd Sub 程序运行后,在文本框中输入3,然后单击命令按钮,则以下叙述中正确的是 B)执行y=-x C)先执行y=x*x,再执行y=-x D)程序出错,Select从前往后判定,当出现第1个满足的条件,则结构结束,A)执行y=x*x,Select Case x Case 90 to 100 y=优秀 Case 80 to 89 y=“良好“Case 60 to 79 y=“合格 Case Else y=不合格End Select,思考:某班学生成绩:90分以上优秀,80分以上良好,60分上合格,60分以下不合格。,真题,以下Case语句中错误的是_。(A)Case 0 To 10(B)Case Is10(C)Case Is10 And Is10,注意:1、Select Case后不能跟多个变量2、不能在条件中出现变量3、不能在条件中出现逻辑表达形式,【例4-5】从键盘输入一个学生的考试成绩,按成绩显示等级。设考试成绩以百分制记分,90-100为优,80-89为良,70-79为中,60-69为及格,0-59为不及格。,【例4-3】为文本框中的字符提供字体选择,