第7章程序VB选择结构程序设计ppt课件.ppt

上传人:牧羊曲112 文档编号:1428839 上传时间:2022-11-23 格式:PPT 页数:53 大小:205KB
返回 下载 相关 举报
第7章程序VB选择结构程序设计ppt课件.ppt_第1页
第1页 / 共53页
第7章程序VB选择结构程序设计ppt课件.ppt_第2页
第2页 / 共53页
第7章程序VB选择结构程序设计ppt课件.ppt_第3页
第3页 / 共53页
第7章程序VB选择结构程序设计ppt课件.ppt_第4页
第4页 / 共53页
第7章程序VB选择结构程序设计ppt课件.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第7章程序VB选择结构程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第7章程序VB选择结构程序设计ppt课件.ppt(53页珍藏版)》请在三一办公上搜索。

1、第7章 选择结构程序设计,学习重点,If语句、IIf函数、Switch函数、Select Case语句的格式与使用。If 语句的嵌套使用。掌握常用的选择结构算法。,本章内容,7.1 If语句7.2 Select Case语句7.3 基本算法及应用7.4 其他应用举例本章小结,引言,分支结构,7.1 If语句,7.1.1 IfThen结构 7.1.2 IfThenElse结构 7.1.3 IfThenElseIf结构 7.1.4 If语句的嵌套 7.1.5 与If语句有关的函数,注1:条件表达式的值为True或False,一般是逻辑或关系表达式,也可以是算术表达式(转换为逻辑值),7.1.1 I

2、fThen结构,两种格式:,格式1: 块形式 If Then 语句体End If,格式2:单行形式 If Then 语句体,注2:当条件为True时执行语句体,否则执行If语句的下一条语句,注3:语句体中可以是多条语句,当采用格式2时,所有的语句必须写在一行,用冒号隔开语句体中的语句,7.1.1 IfThen结构,例:已知有两数x、y,编程使x中存放较大的数分析:如果x=y,则不需要做处理 如果xy,则做交换处理实现:If x y Thentemp = xx = yy = tempEnd If用格式2描述: If x y Then temp = x:x = y:y = temp,特别注意:块结

3、构时If和End If成对出现,7.1.1 IfThen结构,例7-1 电子闹钟设计,主要利用文本框、按钮、计时器控件实现闹钟功能。,例7-1,程序代码如下:Private Sub Command1_Click() Timer1.Enabled = Not Timer1.Enabled 用Not运算进行开关控制End SubPrivate Sub Timer1_Timer() Dim d As Date d = Text1.Text If Hour(Time) = Hour(d) And Minute(Time) = Minute(d) Then Beep 到达时间后发声End Sub,功能:

4、 连续1分钟响铃,60次,等价于:If Hour(Time) = Hour(d) And Minute(Time) = Minute(d) Then Beep End If,7.1.2 IfThenElse结构,两种格式:,格式1:If Then 语句体1Else语句体2 End If,格式2:If Then 语句体1 Else 语句体2,注:当条件为True时执行语句体1,否则执行语句体2,例7-2 已知x,求,程序代码如下:Private Sub CmdCul_Click() Dim x As Single, y As Single x = Val(txtX.Text) 第1个文本框的名称

5、是txtX If x 0 Then MsgBox x不能小于0 Else y = Sqr(x) txtY.Text = Str(y) 第2个文本框的名称是txtY End IfEnd Sub,等价于:If x 0 Then MsgBox x不能小于0 Else y = Sqr(x) : txtY.Text = Str(y),7.1.3 IfThenElseIf结构,If Then语句体1ElseIf Then语句体2Else语句体n+1End If,格式:,7.1.3 IfThenElseIf结构,判断的顺序为表达式1、表达式2只有当表达式1为False时才判断表达式2,当表达式1和表达式2都

6、为False时,才判断表达式3,程序执行语句体n+1的条件为前n个表达式均为False。,7.1.3 IfThenElseIf结构,例:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符、空格还是其它字符。分析:字母字符:ch=“a” And ch=“A” And ch=“0” And ch=“9”空格字符:ch=“ ”实现:,If ch=“a” And ch=“A” And ch=“0” And ch=“9” ThenPrint “数字字符”ElseIf ch=“ ” ThenPrint “空格” ElsePrint “其他字符”End If,7.1.3 IfThenElseIf结

7、构,例7-3 旅客乘车旅行,可免费携带30公斤行李,超过30公斤的部分每公斤需支付托运费10元,超过50公斤部分则每公斤需支付20元托运费。请编程根据每位旅客行李的重量计算其应付的行李托运费。,例7-3,此分段函数用程序代码表示如下:Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x 50 y = (x - 50) * 20 + 20 * 10 End If Text2.Text = yEnd Sub,能否写成?,可以,但Else已经包含了x=30的信息,7.1.4 If语句的嵌套

8、,If语句中又包含If语句在Then子句或Else子句的语句体中包含完整的一条If语句如: If x y ThenPrint x & “” & yElseIf xy ThenPrint x & “” & yElse Print x & “=” & yEnd If End If,7.1.4 If语句的嵌套,注1: If语句的完整性,即内层If语句必须完整地出现在外层If语句的Then子句或Else子句中。,内外层不能有交叉!,7.1.4 If语句的嵌套,注2:ElseIf的匹配原则Else始终与上面距离其最近的未被匹配过的 If匹配注3: If End If的匹配If 块必须以一个 End If

9、 语句结束,If ThenIf Then Else End IfElseIf Then If Then Else End IfEnd If,7.1.4 If语句的嵌套,为使程序结构更为清晰,要养成良好的书写习惯。,If ThenIf Then Else End IfElseIf Then If Then Else End IfEnd If,为体现层次,可以使用Tab健排放不同层次的语句,7.1.4 If语句的嵌套,例7-4 根据用户输入年龄和性别,输出不同的欢迎信息。其中小于14岁的男性为boy,大于14岁的男性为guy,其中小于14岁的女性为girl,大于14岁的女性为miss。,例7-4,

10、程序代码如下:Private Sub Command1_Click() If Op_male.Value = True Then If Val(Txt_age.Text) 14 Then 小于14岁的男性 MsgBox Hello,boy! Else 大于或等于14岁的男性 MsgBox Hello,guy! End If Else If Val(Txt_age.Text) 14 Then 小于14岁的女性 MsgBox Hello,girl! Else 大于或等于14岁的女性 MsgBox Hello,miss! End If End IfEnd Sub,7.1.5 与If语句有关的函数,1

11、. IIf函数*2. Switch函数,1. IIf函数,格式:IIf(条件表达式,条件为True时的表达式,条件为False 时的表达式)功能:根据条件表达式的值,确定函数返回后面两个表达式的其中一个的值。,1. IIf函数,IIf函数实际上是IfThenElse结构的一个简写 IIf函数中后两个表达式可以是各种类型的表达式,也可以是一个IIf函数的调用Print x & IIf(x 0, “大于0”, “小于或小于0”) s = IIf(x 0, 1, IIf(x = 0, 0, -1) 判断x的符号,1. IIf函数,将If语句改写成使用IIf函数:,If x 30 Then y = 0

12、 ElseIf x = 50 Then y = (x - 30) * 10 Else y = (x - 50) * 20 + 20 * 10 End If,等价于:y = IIf(x 30, 0, IIf(x = 50, (x - 30) * 10, (x - 50) * 20 + 20 * 10),2. Switch函数,格式Switch(表达式1,值1, 表达式2,值2 , 表达式n,值n) 功能计算一组条件表达式列表的值,然后返回与条件表达式列表中最先为True的表达式所对应的Variant型数值或表达式。如:lblstatus.Caption= _ Switch(grade=90,A,

13、grade=80,B,grade80,C)用于多分支情况 条件表达式和值必须成对出现 !,2. Switch函数,将If语句改写成使用Switch函数:,If x 30 Then y = 0 ElseIf x = 50 Then y = (x - 30) * 10 Else y = (x - 50) * 20 + 20 * 10 End If,等价于:y = Switch(x 50, (x-50)*20+20*10),7.2 Select Case语句,(多分支语句)格式:Select Case Case 表达式列表1Case 表达式列表2Case ElseEnd Select,7.2 Sel

14、ect Case语句,T,表达式1,语句体1,表达式2,语句体2,T,表达式n,语句体n,语句体n+1,T,执行过程:计算测试表达式的值;依次比较各个表达式,符合条件则进入相应的语句体执行;执行Select Case语句的下一条语句。,计算测试表达式的值,7.2 Select Case语句,注1:测试表达式可以是数值或字符串表达式;注2:各表达式列表 合法的格式:一个常量或常量表达式多个常量或常量表达式,用逗号隔开,逗号相当于“或” ,如:Case 1,3,5,7表达式1 to 表达式2,表示从表达式1到表达式2中所有的值,其中表达式1的值必须小于表达式2的值。如:Case 1 to 5Is关

15、系运算表达式,可以使用的关系运算符为:、=、=,不可以使用逻辑运算符表示多个范围。 前面四种情况的组合,如Case Is10,2,4,6,Is 0 注3:若有多个Case表达式符合条件,则只执行第一个符合的Case下的语句体。,7.2 Select Case语句,例:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符、空格还是其它字符。(用Select Case语句改写)分析:将各种字符的判断条件改写成符合要求的Case条件字母字符:ch=“a” And ch=“A” And ch=“0” And ch=“9” “0” To “9”空格字符:ch=“ ” “ ”Is=“ ”实现:,S

16、elect Case chCase “a” To “z”, “A” to “Z”Print “字母字符” Case “0” To “9”Print “数字字符”Case “ ”Print “空格”Case ElsePrint “其他字符”End Select,7.2 Select Case语句,例7-5简单运算器分析:运算符的判断:共四种取值,事先已在ComboBox中,Select Case Cmbop.Text Case txtresult = Val(txtX) + Val(txtY) Case txtresult = Val(txtX) - Val(txtY) Case txtresu

17、lt = Val(txtX) * Val(txtY) Case txtresult = Val(txtX) / Val(txtY)End Select,7.2 Select Case语句,所有Select Case语句可以替换为IfThenElseIf语句。只有在If语句和每一个ElseIf语句计算相同条件表达式时,才能用Select Case结构替换IfThenElseIf结构。,7.3 基本算法及应用,7.3.1 求两个数的最大(小)值7.3.2 用户输入时按键的判断7.3.3 信息的有效性验证7.3.4 单选钮和复选框的应用,7.3.1求两个数的最大(小)值,分析:两个数的关系无非有3种

18、情形,即:AB,A=B,A= B Then Max = A Else Max = B If A B Then Max = A Else Max = B,7.3.2用户输入时按键的判断,两种方法:一是在输入时判断,使用文本框的Key事件;常用:KeyPress事件(KeyAscii参数)二是在全部输入完成后再对每个字符进行判断,使用循环结构依次获取字符串中的字符。,例7-7 在文本框中输入一个字符串,要求只能出现字母。 Private Sub Text1_KeyPress(KeyAscii As Integer) If (KeyAscii Asc(z) And _ (KeyAscii Asc(Z

19、) Then KeyAscii = 0End Sub,7.3.3信息的有效性验证,例7-8 登录界面设计,“确定”按钮的Click事件过程如下:Private Sub cmdok_Click() If txtuser.Text = Or txtpwd.Text = Then MsgBox 请输入完整信息! Else If txtpwd.Text 20082008 Then MsgBox密码错误,不能登录! txtpwd .Text = txtpwd.SetFocus Else MsgBoxtxtuser.Text & ,欢迎您! End If End IfEnd Sub,有效信息:帐号和密码都

20、不能空密码符合要求,这样的密码设置方法,安全性差,7.3.4 单选钮和复选框的应用,单选钮多选一在同一组单选钮中只有一个按钮的Value属性值为1,通常使用IfThenElseIf的语句格式进行判断。 复选框多选多同一组复选框中可以同时有多个被选中,也可以只选中一个,也可以一个都不选中,通常我们对各个复选框进行独立判断。,7.3.4 单选钮和复选框的应用,例7-9 根据用户选择,求若干门课程的总分或平均分,参考代码如下:Private Sub cmdCal_Click() Dim sum As Integer, n As Integer If chkChinese.Value = 1 Then

21、 sum = sum + Val(txtChinese.Text): n = n + 1 If chkMath.Value = 1 Then sum = sum + Val(txtMath.Text): n = n + 1 If chkEnglish.Value = 1 Then sum = sum + Val(txtEnglish.Text): n = n + 1 If optTotal.Value Then txtResult.Text = n & 门课总分: & vbCrLf & sum Else If n 0 Then txtResult.Text = n & 门课平均分: & vbC

22、rLf & sum / n End IfEnd Sub,问:变量n的作用是什么?,7.4 其他应用举例,例7-10例7-11例7-12例7-13,例7-10,例7-10 调整3个文本框中的数值,使其中的数值按小到大的顺序排放,If a b Then temp = a: a = b: b = temp 如果a大于b,交换a和b的值 If a c Then temp = a: a = c: c = temp 如果a大于c,交换a和c的值 If b c Then temp = b: b = c: c = temp 如果b大于c,交换b和c的值,例7-11,例7-11 求一元二次方程ax2+bx+c=

23、0的根,根据数学中一元二次方程的求根公式,令:当0时,方程有两个不相等的实根;当=0时,方程有两个相等的实根;当0时,方程有两个不相等的虚根。,例7-11,If a 0 Then delta = b * b - 4 * a * c If delta 0 Then x1 = (-b + Sqr(delta) / (2 * a) 第1个根 x2 = (-b - Sqr(delta) / (2 * a) 第2个根 txtroot = X1= & x1 & Chr(13) & Chr(10) & X2= & x2 ElseIf delta = 0 Then x1 = -b / (2 * a) txtr

24、oot = Two equal root,X1=X2= & x1 Else x1 = -b / (2 * a) 根的实部 x2 = Sqr(-delta) / (2 * a) 根的虚部 txtroot = X1= & x1 & + & x2 & i & Chr(13) & Chr(10) & X2= & x1 & - & x2 & i End If End If,例7-12,例7-12 编程实现输入一个整数,判断其能否被3、5、7整除,并输出以下信息之一:(1)能被3、5、7整除。(2)能被其中两个数(要指出哪两个)整除。(3)能被其中一个数(要指出哪一个)整除。(4)不能被3、5、7任一个整

25、除。,代码1,If x Mod 3 = 0 And x Mod 5 = 0 And x Mod 7 = 0 Then MsgBox 能被3,5,7整除If x Mod 3 = 0 And x Mod 5 = 0 And x Mod 7 0 Then MsgBox 能被3,5整除If x Mod 3 = 0 And x Mod 7 = 0 And x Mod 5 0 Then MsgBox 能被3,7整除If x Mod 5 = 0 And x Mod 7 = 0 And x Mod 3 0 Then MsgBox 能被5,7整除If x Mod 3 = 0 Then MsgBox 能被3整除I

26、f x Mod 5 = 0 Then MsgBox 能被5整除If x Mod 7 = 0 Then MsgBox 能被7整除,代码2,If x Mod 3 = 0 And x Mod 5 = 0 And x Mod 7 = 0 Then MsgBox 能被3,5,7整除 ElseIf x Mod 3 = 0 And x Mod 5 = 0 And x Mod 7 0 Then MsgBox 能被3,5整除 ElseIf x Mod 3 = 0 And x Mod 7 = 0 And x Mod 5 0 Then MsgBox 能被3,7整除 ElseIf x Mod 5 = 0 And x

27、Mod 7 = 0 And x Mod 3 0 Then MsgBox 能被5,7整除 ElseIf x Mod 3 = 0 Then MsgBox 能被3整除 ElseIf x Mod 5 = 0 Then MsgBox 能被5整除 ElseIf x Mod 7 = 0 Then MsgBox 能被7整除 Else MsgBox 不能被3、5、7任一数整除 End If,代码3,If x Mod 3 = 0 Then n = n + 1 s = s & 3 End If If x Mod 5 = 0 Then n = n + 1 s = s & 5 End If If x Mod 7 = 0

28、 Then n = n + 1 s = s & 7 End If If n 0 Then MsgBox 能被 & s & 这 & n & 个数整除 Else MsgBox 不能被任一数整除 End If,代码4,n=0 If x Mod 3 = 0 Then n = n + 1 End If If x Mod 5 = 0 Then n = n + 2 End If If x Mod 7 = 0 Then n = n + 4 End If,Select Case n Case 0: MsgBox 不能被任一数整除 Case 1: MsgBox 能被3整除 Case 2: MsgBox 能被5整除

29、 Case 3: MsgBox 能被3,5整除 Case 4: MsgBox 能被7整除 Case 5: MsgBox 能被3,7整除 Case 6: MsgBox 能被5,7整除 Case 7: MsgBox 能被3,5,7整除 End Select,例7-13,例7-13 模拟红绿灯。在界面上有两个图像框,分别显示信号灯和汽车,设定信号灯的变化规律是黄灯1秒,红灯2秒,绿灯3秒,汽车从左向右行驶,当行驶到路口时,根据信号灯的提示进行等待或行驶,Const path As String = C:Program FilesMicrosoft Visual StudioCommonGraphic

30、sIconsTrafficDim a As IntegerPrivate Sub Timer1_Timer() a = a + 1 If a 6 Then a = 1 End If Select Case a Case 1 Image1.Picture = LoadPicture(path & TRFFC10B.ICO) Case 2, 3 Image1.Picture = LoadPicture(path & TRFFC10C.ICO) Case 4, 5, 6 Image1.Picture = LoadPicture(path & TRFFC10A.ICO) Timer2.Enabled

31、= True End SelectEnd Sub,例7-13,Private Sub Timer2_Timer() If a = Line1.X1 - 100 And _ Image2.Left + Image2.Width Me.Width Then Image2.Left = -Image2.Width End If End IfEnd Sub,本 章 小 结,选择结构是算法的基本结构之一,凡是需要进行分情况执行的时候都应该使用相关的选择结构语句。本章主要介绍选择结构中的If语句和Select Case语句及相关函数。If语句的格式较多,在实际应用中要注意区分;Select Case语句可以简化条件的表示,使用该语句完成的功能都可以用If语句来实现;IIf函数和Switch函数分别是If语句和Select Case语句的简单表示。本章介绍的常用算法包含了对选择语句的应用,读者在编程中要认真分析算法,构建正确的逻辑结构,并且选择正确的语句来表示算法,使算法更合理、更优化。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号