VB 选择结构.ppt
1 1第四章第四章 选择结构选择结构4.1 运算符与表达式运算符与表达式4.2 顺序结构顺序结构 4.3 If语句语句 4.4 多条件选择语句多条件选择语句4.5 选项按钮选项按钮4.6 复选框复选框2 24.1.1 算术运算符与算术表达式算术运算符与算术表达式4.1 运算符与表达式运算符与表达式运算符运算符运算运算示例示例结果结果乘方乘方23238 8-取负取负-a(a=2)-a(a=2)-2-2*乘法乘法6.5*66.5*639.039.0/除法除法13/213/26.56.5 整除整除1321326 6ModMod取模取模15Mod415Mod43 3+加法加法45+645+65151-减法减法23-1123-111212两种含义:减法或两种含义:减法或者取负者取负区别区别求整型除求整型除法的余数法的余数3 34.1.2 关系运算符与关系表达式关系运算符与关系表达式运算符运算符含义含义示例示例结果结果大于大于53True=大于等于大于等于“a”=“b”False小于小于“abc”“bcd”True=小于等于小于等于5=6True=等于等于“56”=“65”False不等于不等于“ABCD”ABC”True优优先先级级的的级级别别都都是是相相同同的的4 4进行关系运算时,进行关系运算时,先算出关系运算符两侧表达式先算出关系运算符两侧表达式的值的值,然后再进行比较,然后再进行比较表达式均为表达式均为数值型数值型时,按时,按数值大小数值大小进行比较进行比较表达式是表达式是字符串型字符串型时,对应的字符时,对应的字符按按ASCII值值进进行比较行比较数值型与数值型与可转换成数值型的数据可转换成数值型的数据比较,按比较,按转换后转换后的数值进行比较的数值进行比较日期型数据日期型数据的比较,看成的比较,看成”yyyymmdd”的的8位整数位整数单精度数不能直接进行单精度数不能直接进行”=”的比较的比较,计算机中的浮,计算机中的浮点数的误差。点数的误差。5 54.1.3 布尔运算符与布尔表达式布尔运算符与布尔表达式 运算符运算符含义含义示例示例结果结果说明说明Not取反取反Not TF对其后的布尔值取反对其后的布尔值取反And与与T And FF当两个值均为真时结果为真当两个值均为真时结果为真Or或或T Or FT当两个值均为假时结果为假当两个值均为假时结果为假Xor异或异或T Xor FT两个值相反时,结果才为真两个值相反时,结果才为真Eqv等价等价T Eqv FF两个值相同时,结果才为真两个值相同时,结果才为真Imp蕴含蕴含T Imp FF第一个值为真,第二个值为第一个值为真,第二个值为假时结果为假,否则结果为假时结果为假,否则结果为真真6 64.1.4 字符串运算符与字符串表达式字符串运算符与字符串表达式 VB只有一种字符串连接符,即连接运算符只有一种字符串连接符,即连接运算符“&”。字符串表达式的字符串表达式的格式格式为:为:&例如:例如:“xyz”&123&456 运算结果为运算结果为xyz123456123&“100”运算结果为运算结果为123100 7 74.1.5 运算符的优先顺序运算符的优先顺序优先级优先级运算符类型运算符类型运算符运算符1 1算术运算符算术运算符(指数运算指数运算)2 2-(-(取负取负)3 3*、/(/(乘法和除法乘法和除法)4 4(整除整除)5 5Mod(Mod(求模求模)6 6+、-(-(加法和减法加法和减法)7 7字符串运算符字符串运算符&(&(字符串连接字符串连接)8 8关系运算符关系运算符=、=、=9 9布尔运算符布尔运算符Not(Not(取反取反)1010And(And(与与)1111OrOr、Xor(Xor(或和异或或和异或)1212Eqv(Eqv(等价等价)1313Imp(Imp(蕴含蕴含)8 8求表达式求表达式Not 86 Or 65 And 5+310的值的值(1)(1)算术运算:算术运算:算术运算:算术运算:NotNot 86 86 Or 65 And 810(2)(2)关系运算:关系运算:关系运算:关系运算:NotNot TrueTrue Or True And False(3)(3)取反操作:取反操作:取反操作:取反操作:FalseFalse Or True And False(4)(4)与操作:与操作:与操作:与操作:False False Or False(5)最后得到:最后得到:最后得到:最后得到:False9 判断一个年份是否是闰年,需要满足以下条判断一个年份是否是闰年,需要满足以下条件:该年份能被件:该年份能被4整除但不能被整除但不能被100整除,或整除,或该年份能被该年份能被100整除又能被整除又能被400整除。设整除。设y为为年份。年份。条件条件1:y mod4=0 And y mod1000条件条件2:y mod100=0 And y mod400=0y mod4=0 And y mod1000 Or y mod100=0 And y mod400=010104.2 顺序结构顺序结构 顺序结构是程序中最基本的一种结构,顾名思顺序结构是程序中最基本的一种结构,顾名思义是按照顺序向下执行,一条语句执行完毕之后义是按照顺序向下执行,一条语句执行完毕之后接着执行下一条语句的结构。接着执行下一条语句的结构。1111Private Sub Command1_Click()Dim a As Integer,b As Integer a=12 Print“a=”;a b=2*a Print “b=”;bEnd Sub结果:结果:a=12 b=2412124.3.1 单行选择语句单行选择语句IfThenElse单行选择语句的单行选择语句的语法格式语法格式为:为:If Then 语句序列语句序列1 Else 语句序列语句序列24.3 If语句语句条件语句序列1语句序列2真假条件表达式的结果条件表达式的结果为一个布尔值;可为一个布尔值;可以是关系表达式;以是关系表达式;布尔表达式;数值布尔表达式;数值表达式,非表达式,非0值为值为True,0为为False;字符串表达式,只字符串表达式,只允许出现包含数字允许出现包含数字的字符串。的字符串。1313分析:分析:当当x2时,用公式时,用公式yx39来求来求y的值;当的值;当x=2 Then y=x 3-9 Else y=x 2+5*x-6 Text2.Text=yEnd Sub1616IIF语句也是单条件选择结构语句,其语句也是单条件选择结构语句,其语法格式语法格式为:为:IIF(条件,语句序列条件,语句序列1,语句序列,语句序列2)其中:语句序列其中:语句序列1是条件为真时要执行的语句块部分,是条件为真时要执行的语句块部分,语句序列语句序列2是条件为假时要执行的语句块部分。是条件为假时要执行的语句块部分。If x=2 Then y=x 3-9 Else y=x 2+5*x-6利用利用IIF语句可将改其写成如下形式:语句可将改其写成如下形式:y=IIF(x=2,x 3 9,x 2+5*x 6)4.3.2 IIF语句语句1717其其语法格式语法格式如下:如下:If Then Else End If4.3.3 块结构条件语句块结构条件语句IfThenElseEnd If 当当If语句中的语句序列要包含多条语句时,采用块语句中的语句序列要包含多条语句时,采用块结构条件语句。结构条件语句。If x=2 Then y=x 3-9 Else y=x 2+5*x 6End If块结构中的块结构中的If语句必须以语句必须以End If结束结束1818 If语句的嵌套是指语句序列语句的嵌套是指语句序列1或语句序列或语句序列2本身又本身又是一个是一个If语句。语句。语法格式语法格式:If Then If Then Else End If Else End If4.3.4 If语句的嵌套语句的嵌套1919条件2条件12020 例:铁路托运行李,从甲地到乙地,规定每张客票托运例:铁路托运行李,从甲地到乙地,规定每张客票托运费计算方法是行李重量不超过费计算方法是行李重量不超过50kg时,时,0.25元元/kg,超过,超过50kg而不超过而不超过100kg时,其超过部分按时,其超过部分按0.35元元/kg收费,收费,超过超过100kg时,其超过部分按时,其超过部分按0.45元元/kg收费。编写程序,收费。编写程序,输入行李重量,计算并输出托运的费用。输入行李重量,计算并输出托运的费用。分析:分析:设行李重量为设行李重量为wkg,应付运费为,应付运费为x元,则运费公式元,则运费公式为:为:2121Private Sub Command1_Click()Dim w As Single,x As Single w=Val(Text1.Text)If w=50 Then x=0.25*w Else If w=100 Thenx=0.25*50+0.35*(w50)Else x=0.25*50+0.35*50+0.45*(w100)End If End If Text2.Text=xEnd Sub2222多层的多层的If语句嵌套格式使程序冗长复杂。语句嵌套格式使程序冗长复杂。ElseIf语句的语句的语法格式语法格式如下:如下:If Then 语句序列语句序列1 ElseIf Then 语句序列语句序列2 Else 语句序列语句序列n+1 End If4.3.5 ElseIf语句语句2323例【例【4-8】学生成绩采用五分制:成绩小于】学生成绩采用五分制:成绩小于60分分为为“不及格不及格”,大于等于,大于等于60小于小于70为为“及格及格”,大于等于,大于等于70小于小于80为为“中中”,大于等于,大于等于80小小于于90为为“良良”,大于等于,大于等于90为为“优优”。试编写。试编写程序判断某学生的成绩等级。程序判断某学生的成绩等级。分析:分析:可从文本框可从文本框1中获取学生成绩,然后进行中获取学生成绩,然后进行判断并在文本框判断并在文本框2中输出。中输出。24If score=0 And score=60 And score=70 And score=80 And score=90 And score 60 then b=1If a70 then b=2If a80 then b=3If a90 then b=4a=75If a60 then b=1ElseIf a70 then b=2ElseIf a80 then b=3ElseIf a90 then b=4Else b=0End If 2626语法格式语法格式如下:如下:Select Case Case 语句序列语句序列1 Case 语句序列语句序列2 Case 语句序列语句序列n Case Else 语句序列语句序列n+1 End Select4.4 多条件选择语句多条件选择语句Select Case27272828Case子句中的表达式列表可以有以下几种子句中的表达式列表可以有以下几种形式形式:形式形式示例示例说明说明表达式表达式Case 2*a,12,14数值或字符串,测试条件的值可以是数值或字符串,测试条件的值可以是2*a,12,14三者之一三者之一表达式表达式1 To 表表达式达式2Case 1 To 101测试条件值测试条件值10Is 关系运算符关系运算符表达式表达式Is100测试条件值测试条件值1002929例例【4-10】判断某一闰年中任意给定的月份有多判断某一闰年中任意给定的月份有多少天。少天。分析:分析:在闰年中,在闰年中,2月有月有29天,天,1、3、5、7、8、10、12月有月有31天,其他月份有天,其他月份有30天。这是个多个天。这是个多个条件的选择问题,用条件的选择问题,用Select Case语句实现。设计语句实现。设计时有文本框时有文本框1提供月份的输入,文本框提供月份的输入,文本框2用于输出用于输出该月有多少天,点击该月有多少天,点击“判断判断”按钮进行判断。按钮进行判断。30Private Sub Command1_Click()Dim m As Integer m=Val(Text1.Text)Select Case m Case Is 12 Text2.Text=输入错误输入错误 Case 2 Text2.Text=本月有本月有29天天 Case 1,3,5,7,8,10,12 Text2.Text=本月有本月有31天天 Case Else Text2.Text=本月有本月有30天天 End SelectEnd Sub312.输入输入3个不同的数,将它们从大到小排序个不同的数,将它们从大到小排序3.假定每周的工作安排:星期一、三:计算机;星假定每周的工作安排:星期一、三:计算机;星期二、四:高等数学;星期五:英语;星期六、日:期二、四:高等数学;星期五:英语;星期六、日:休息。输入星期,输出安排。休息。输入星期,输出安排。提示:用提示:用06代表星期日到星期六。代表星期日到星期六。1.按下列公式计算按下列公式计算Y值值练习练习32324.5 选项按钮控件选项按钮控件 选项按钮选项按钮(OptionButton)就是我们通常所说的就是我们通常所说的单选单选按钮按钮,它的主要功能是提供一组选择它的主要功能是提供一组选择,这些选择是互斥这些选择是互斥的的,要求在这些互斥的选择中根据需要选取一个且只能要求在这些互斥的选择中根据需要选取一个且只能选取一个。选取一个。属性名属性名说说明明Value选项选项按按钮钮的的选择选择状状态态:True表示被表示被选选中,中,False表示未被表示未被选选中中Caption显显示出示出现现在在选项选项按按钮钮旁旁边边的文本的文本Style显显示示风风格:格:0标标准方式,准方式,选选中中时时出出现圆现圆黑点,黑点,1图图形方式,外形方式,外观类观类似命令按似命令按钮钮,按下,按下时时表示表示选选中中Picture在在选项选项按按钮选钮选用用图图片片常用属性常用属性3333ValueValue属性:属性:属性:属性:选项按钮的选项按钮的Value属性指出是否选定了属性指出是否选定了此按钮。选定时,值将变为此按钮。选定时,值将变为True,可在代码中设,可在代码中设置选项按钮的置选项按钮的Value属性来选定按钮。例如:属性来选定按钮。例如:Option1Value=True要在选项按钮组中设置缺省选项按钮,可在设计时要在选项按钮组中设置缺省选项按钮,可在设计时通过设置通过设置Value属性,也可在运行时在代码中用上属性,也可在运行时在代码中用上述语句来设置述语句来设置Value属性。属性。3434选项按钮常用的选项按钮常用的事件事件是是Click、GotFocus(获得焦点获得焦点)、LostFocus(失去焦点失去焦点)事件。常用的事件。常用的方法方法是是SetFocus方法,即让该选项按钮获得焦点,此时方法,即让该选项按钮获得焦点,此时其其Value值为值为True。一个选项按钮可以用以下几种方法选择:一个选项按钮可以用以下几种方法选择:1.在运行时单击该选项按钮在运行时单击该选项按钮2.用代码使它的用代码使它的Value值为值为True,即,即 Option1.Value=True3.在选项按钮组内使用方向键选择选项按钮在选项按钮组内使用方向键选择选项按钮3535ClickClick事件:事件:事件:事件:选定选项按钮时将触发其选定选项按钮时将触发其Click事件。事件。是否有必要响应此事件,这将取决于应用程序的是否有必要响应此事件,这将取决于应用程序的功能。功能。在平常应用中,常常需要几组选项,这就需要创建在平常应用中,常常需要几组选项,这就需要创建选项组。选项组。要将选项按钮分组,可把它们创建在不同要将选项按钮分组,可把它们创建在不同的容器控件中,像的容器控件中,像Frame控件、控件、Picture控件控件。运行。运行时,用户在每个选项组中只能选定一个选项按钮。时,用户在每个选项组中只能选定一个选项按钮。3636 例例【4-11】利用选项按钮修改文本框中文字的字利用选项按钮修改文本框中文字的字体,共有宋体、隶书和楷体体,共有宋体、隶书和楷体3中字体。中字体。分析:分析:3中字体是互斥的,所以需要使用中字体是互斥的,所以需要使用3个选项按个选项按钮钮Option1Option3,将其,将其Caption依次修改为宋依次修改为宋体、隶书和楷体;此外还有一个文本框用于输入。体、隶书和楷体;此外还有一个文本框用于输入。37374.6 复选框复选框 复选框复选框(CheckBox)也称为检查框,主要功能也称为检查框,主要功能是提供在多种选择中选择一种、选择两种或选择是提供在多种选择中选择一种、选择两种或选择多种的方法。复选框可以单独使用,也可以成组多种的方法。复选框可以单独使用,也可以成组使用;成组使用时,组内每个复选框是独立的,使用;成组使用时,组内每个复选框是独立的,可以被独立选择。可以被独立选择。3838复选框常用的复选框常用的属性属性有:有:1.Caption属性:显示出现在复选框旁边的文本属性:显示出现在复选框旁边的文本2.Value属性:属性:0-Unchecked、1-Checked、2-Grayed,分别代表未选定、选定和禁用状态。,分别代表未选定、选定和禁用状态。复选框的常用复选框的常用事件事件有有Click事件、事件、GotFocus和和LostFocus事件。事件。3939ValueValue属性:属性:属性:属性:该属性指示复选框处于选定、未选该属性指示复选框处于选定、未选定或禁用状态(灰色的)中的哪一种。有三种设定或禁用状态(灰色的)中的哪一种。有三种设置值:置值:0-Unchecked、1-Checked、2 Grayed。其缺省值是未选定状态。其缺省值是未选定状态。若要预先在一系列复选框中选定若干复选框,若要预先在一系列复选框中选定若干复选框,则应在则应在Form_Load或或Form_Initialize过程中将过程中将Value属性设置为属性设置为Checked,也可将属性值设置,也可将属性值设置为为Grayed以禁用复选框。以禁用复选框。4040例例【4-13】设设计计一一个个程程序序,窗窗体体上上包包括括学学生生的的基基本本信信息息,学学生生可可以以利利用用复复选选框框进进行行课课程程选选择择,信信息息及及课课程程选选择择完完毕毕后后单单击击“确确定定”即即可可将将所所有有信信息息在在下面显示出来。下面显示出来。41小结小结 本章主要介绍了本章主要介绍了VB语言中的一种重要程序结语言中的一种重要程序结构构选择结构,该结构是选择结构,该结构是Visual Basic程序中常程序中常用的用的3种基本结构之一,种基本结构之一,首先介绍选择结构中所首先介绍选择结构中所用到的基本知识:算术运算符、比较运算符、连用到的基本知识:算术运算符、比较运算符、连接运算符、逻辑运算符与表达式,然后简单介绍接运算符、逻辑运算符与表达式,然后简单介绍一下顺序结构,最后依次介绍几种选择语句。本一下顺序结构,最后依次介绍几种选择语句。本章最后介绍了两种控件。章最后介绍了两种控件。