程序VB选择结构程序设计剖析_第1页
程序VB选择结构程序设计剖析_第2页
程序VB选择结构程序设计剖析_第3页
程序VB选择结构程序设计剖析_第4页
程序VB选择结构程序设计剖析_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序VB选择结构程序设计剖析学习重点 If语句、Select Case语句的格式与使用。If 语句的嵌套使用。掌握常用的选择结构算法。 本节内容 If语句 Select Case语句基本算法及应用其他应用举例本节小结 引言分支结构 True False P A B 2.3 If语句2.3.1 IfThen结构 2.3.2 IfThenElse结构 2.3.3 IfThenElse If结构 2.3.4 If语句的嵌套 2.3.5 与If语句有关的函数 注注1 1:条件表达式的值为:条件表达式的值为TrueTrue或或FalseFalse,一般是,一般是逻辑或关系表达式,也可以是算术表达式(转换

2、逻辑或关系表达式,也可以是算术表达式(转换为逻辑值)为逻辑值)2.3.1 IfThen结构两种格式:格式格式1 1: 块形式块形式 格式格式2 2:单行形式单行形式 条件表达式条件表达式语句体语句体TrueFalse注注2 2:当条件为:当条件为TrueTrue时执行语句体,否则执行时执行语句体,否则执行IfIf语句语句的下一条语句的下一条语句注注3 3:语句体中可以是:语句体中可以是多条语句多条语句,当采用,当采用格式格式2 2时,时,所有的语句必须写在一行,用冒号隔开语句体中的所有的语句必须写在一行,用冒号隔开语句体中的语句语句 2.3.1 IfThen结构例:已知有两数x、y,编程使x中

3、存放较大的数n分析:如果x=y,则不需要做处理 如果xy,则做交换处理n实现:If x y Thent = xx = yy = tEnd Ifn用格式2描述: If x y Then t = x:x = y:y = t特别注意:特别注意:块结构时块结构时If和和End If成对出现成对出现2.3.1 IfThen结构例例1 倒计时设计,主要利用文本框、按钮、计时器控件实现倒计时功能。 例例2-3-1程序代码如下:Private Sub Command1_Click三Timer1.Interval = 1000Timer1.Enabled = TrueEnd SubPrivate Sub For

4、m_Load三Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer三Text1.Text = - 1If Text1.Text = 0 ThenTimer1.Enabled = FalseEnd IfEnd Sub2.3.2 IfThenElse结构两种格式:格式格式1 1:格式格式2 2:注:当条件为注:当条件为TrueTrue时执行语句体时执行语句体1 1,否则执行语句体,否则执行语句体2 2T条件表达式条件表达式语句体语句体1F语句体语句体2例2-3-2 已知x,求程序代码如下:Private Sub CmdCul_Click三 Di

5、m x As Single, y As Single x = ) 第1个文本框的名称是txtX If x 0 Then MsgBox x不能小于0 Else y = Sqr(x) = Str(y) 第2个文本框的名称是txtY End IfEnd Sub等价于:等价于:If x 0 Then MsgBox x不能小于不能小于0 Else y = Sqr(x) : = Str(y) 2.3.3 IfThenElseIf结构表达式表达式1 1 True True 执行语句体执行语句体1 1 False False 表达式表达式2 2 True True 执行语句体执行语句体2 2 False Fa

6、lse 表达式表达式3 3ElseElse和和IfIf间无空格间无空格格式:2.3.3 IfThenElseIf结构FT表达式表达式1语句体语句体1表达式表达式2语句体语句体2TF表达式表达式n语句体语句体nF语句体语句体n+1T判断的顺序为表达式判断的顺序为表达式1、表达式、表达式2只有当表达式只有当表达式1为为False时才判断表达式时才判断表达式2,当表达式,当表达式1和表和表达式达式2都为都为False时,才判断表达式时,才判断表达式3,程序执行语句体程序执行语句体n+1的条件为前的条件为前n个表达式均为个表达式均为False。2.3.3 IfThenElseIf结构例2-3 -3 旅

7、客乘车旅行,可携带30公斤行李,超过30公斤的部分每公斤需支付托运费10元,超过50公斤部分则每公斤需支付20元托运费。请编程根据每位旅客行李的重量计算其应付的行李托运费。例2-3-3此分段函数用程序代码表示如下此分段函数用程序代码表示如下:Private Sub Command1_Click三三 Dim x As Single, y As Single x = Val(Text1.Text) If x 30 Then x30 y = 0 ElseIf x = 50 Then 30=x50 y = (x - 50) * 20 + 20 * 10 End If Text2.Text = yEnd

8、 Sub可以,但可以,但ElseElse已经包含了已经包含了x=30 x=30的信息的信息2.3.4 If语句的嵌套If语句中又包含If语句n在Then子句或Else子句的语句体中包含完整的一条If语句n如: If x y ThenPrint x & “” & yElseIf xy ThenPrint x & “” & yElse Print x & “=” & yEnd If End If一条一条IfIf语句语句一条一条IfIf语句语句2.3.4 If语句的嵌套n注1: If语句的完整性,即内层If语句必须完整地出现在外层If语句的Then子句

9、或Else子句中。外层外层IfIf内层内层IfIf内层内层IfIf内外层不能有交叉!内外层不能有交叉!2.3.4 If语句的嵌套n注2:ElseIf的匹配原则Else始终与上面距离其最近的未被匹配过的 If匹配注3: If End If的匹配If 块必须以一个 End If 语句结束If ThenIf Then Else End IfElseIf Then If Then Else End IfEnd If2.3.4 If语句的嵌套为使程序结构更为清晰,要养成良好的书写习惯。If ThenIf Then Else End IfElseIf Then If Then Else End IfEnd

10、 If为体现层次,可以使用为体现层次,可以使用TabTab健排放不同层次的语健排放不同层次的语句句2.3.4 If语句的嵌套例2-3-4 根据用户输入年龄和性别,输出不同的欢迎信息。其中小于14岁的男性为boy,大于14岁的男性为guy,其中小于14岁的女性为girl,大于14岁的女性为miss。例2-3-4程序代码如下:程序代码如下:Private Sub Command1_Click三三 If Op_male.Value = True Then If Val(Txt_age.Text) 14 Then 小于小于14岁的男性岁的男性 MsgBox Hello,boy! Else 大于或等于大

11、于或等于14岁的男性岁的男性 MsgBox Hello,guy! End If Else If Val(Txt_age.Text) b Thenmax=aElsemax=bEnd Ifmax= IIf ( ab , a , b ) 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函数: I

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

13、) * 10 Else y = (x - 50) * 20 + 20 * 10 End If等价于:等价于:y = Switch(x 30, 0, x50, (x-50)*20+20*10) 条件条件条件条件条件条件值值值值值值2.3.2 Select Case语句(多分支语句)格式:2.3.2 Select Case语句T表达式表达式1语句体语句体1表达式表达式2语句体语句体2T表达式表达式n语句体语句体n语句体语句体n+1T执行过程执行过程:计算测试表达式的值;计算测试表达式的值;依次比较各个表达式,符合条件则进入相应的语句体执行;依次比较各个表达式,符合条件则进入相应的语句体执行;执行执

14、行Select Case语句的下一条语句。语句的下一条语句。计算测试表达式的值计算测试表达式的值2.3.2 Select Case语句n注注1:测试表达式可以是数值或字符串表达式:测试表达式可以是数值或字符串表达式;n注注2:各:各表达式列表表达式列表 合法的格式:合法的格式:一个常量或常量表达式一个常量或常量表达式多个常量或常量表达式,用逗号隔开,逗号相当于多个常量或常量表达式,用逗号隔开,逗号相当于“或或” ,如:,如:Case 1,3,5,7表达式表达式1 to 表达式表达式2,表示从表达式,表示从表达式1到表达式到表达式2中所有的值,其中表达式中所有的值,其中表达式1的值必须小于表达式

15、的值必须小于表达式2的值。如:的值。如:Case 1 to 5Is关系运算表达式,可以使用的关系运算符为:关系运算表达式,可以使用的关系运算符为:、=、=、=,不可以,不可以使用逻辑运算符表示多个范围。使用逻辑运算符表示多个范围。 前面四种情况的组合,如前面四种情况的组合,如Case Is10,2,4,6,Is =“a” And ch=“A” And ch=“0” And ch=“9” “0” To “9”空格字符:ch=“ ” “ ”Is=“ ”n实现:Select Case chSelect Case chCase “a” To “z”, “A” to “Z”Case “a” To “z”

16、, “A” to “Z”Print “Print “字母字符字母字符” Case “0” To “9”Case “0” To “9”Print “Print “数字字符数字字符”Case “ ”Case “ ”Print “Print “空格空格”Case ElseCase ElsePrint “Print “其他字符其他字符”End SelectEnd Select2.3.2 Select Case语句例例7-57-5简单运算器简单运算器n分析:运算符的判断:共四种取值,事先已在ComboBox中 Select Case Case txtresult = Val(txtX) + Val(tx

17、tY) Case txtresult = Val(txtX) - Val(txtY) Case txtresult = Val(txtX) * Val(txtY) Case txtresult = Val(txtX) / Val(txtY)End Select If Val(txtY) 0 Then txtresult = Val(txtX) / Val(txtY)Else MsgBox 被被0除除 txtY = : txtY.SetFocusEnd If2.3.2 Select Case语句 所有Select Case语句可以替换为IfThenElseIf语句。只有在If语句和每一个Else

18、If语句计算相同条件表达式时,才能用Select Case结构替换IfThenElseIf结构。 If x 30 Then y = 0 ElseIf x = 50 Then y = (x - 30) * 10 Else y = (x - 50) * 20 + 20 * 10 End IfSelect Case x Case Is 50 y = (x - 50) * 20 + 20 * 10End Select2.3.3 基本算法及应用 求两个数的最大(小)值 用户输入时按键的判断 信息的有效性验证 单选钮和复选框的应用 求两个数的最大(小

19、)值求两个数的最大(小)值分析:两个数的关系无非有3种情形,即:AB,A=B,A= B Then Max = A Else Max = B If A B Then Max = A Else Max = B 用户输入时按键的判断用户输入时按键的判断两种方法:两种方法:n一是在输入时判断,使用文本框的一是在输入时判断,使用文本框的Key事件;事件;n常用:常用:KeyPressKeyPress事件(事件(KeyAsciiKeyAscii参数)参数)n二是在全部输入完成后再对每个字符进行判断,使用二是在全部输入完成后再对每个字符进行判断,使用循环结构依次获取字符串中的字符。循环结构依次获取字符串中的

20、字符。 例例 在文本框中输入一个字符串,要求只能出现字母。在文本框中输入一个字符串,要求只能出现字母。 Private Sub Text1_KeyPress(KeyAscii As Integer) If (KeyAscii Asc(z) And _ (KeyAscii Asc(Z) Then KeyAscii = 0End Sub信息的有效性验证信息的有效性验证例 登录界面设计“确定确定”按钮的按钮的Click事件过程如下:事件过程如下:Private Sub cmdok_Click三三 If = Or = Then MsgBox 请输入完整信息!请输入完整信息! Else If 202X2

21、02X Then MsgBox密码错误,不能登录!密码错误,不能登录! txtpwd .Text = Else MsgBox & ,欢迎您!,欢迎您! End If End IfEnd Sub 有效信息:有效信息:帐号和密码都不能空帐号和密码都不能空密码符合要求密码符合要求这样的密码设置方法,安全性差这样的密码设置方法,安全性差 单选钮和复选框的应用单选钮和复选框的应用单选钮单选钮多选一多选一n在同一组单选钮中只有一个按钮的在同一组单选钮中只有一个按钮的ValueValue属属性值为性值为1 1,通常使用,通常使用IfThenElseIfIfThenElseIf的的语句格式进行判断。语

22、句格式进行判断。 复选框复选框多选多多选多n同一组复选框中可以同时有多个被选中,也同一组复选框中可以同时有多个被选中,也可以只选中一个,也可以一个都不选中,通可以只选中一个,也可以一个都不选中,通常我们对各个复选框进行独立判断。常我们对各个复选框进行独立判断。 单选钮和复选框的应用单选钮和复选框的应用例例 根据用户选择,求若干门课程的总分或平均分根据用户选择,求若干门课程的总分或平均分参考代码如下:参考代码如下:Private Sub cmdCal_Click三三 Dim sum As Integer, n As Integer If = 1 Then sum = sum + ): n = n

23、 + 1 If = 1 Then sum = sum + ): n = n + 1 If = 1 Then sum = sum + ): n = n + 1 If Then = n & 门课总分门课总分: & vbCrLf & sum Else If n 0 Then = n & 门课平均分门课平均分: & vbCrLf & sum / n End IfEnd Sub 问:变量问:变量n的作用是什么?的作用是什么? 其他应用举例例10例11例12例13例10例10 调整3个文本框中的数值,使其中的数值按小到大的顺序排放 If a b

24、 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的值例11例7-11 求一元二次方程ax2+bx+c=0的根 根据数学中一元二次方程的求根公式,令:当0时,方程有两个不相等的实根;当=0时,方程有两个相等的实根;当0时,方程有两个不相等的虚根。 例11If a 0 Then delta = b * b - 4 * a * c If delta 0

25、 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) txtroot = Two equal root,X1=X2= & x1 Else x1 = -b / (2 * a) 根的实部 x2 = Sqr(-delta) / (2 * a) 根的虚部 txtroot =

26、 X1= & x1 & + & x2 & i & Chr(13) & Chr(10) & X2= & x1 & - & x2 & i End If End If例12例7-12 编程实现输入一个整数,判断其能否被3、5、7整除,并输出以下信息之一:(1)能被3、5、7整除。(2)能被其中两个数(要指出哪两个)整除。(3)能被其中一个数(要指出哪一个)整除。(4)不能被3、5、7任一个整除。代码1If x Mod 3 = 0 And x Mod 5 = 0 And x Mod 7 = 0 Then MsgBo

27、x 能被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整除If x Mod 5 = 0 Then MsgBox 能被5整除If x Mod 7 = 0 Then MsgBox 能被7整除代

28、码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 Mod 7 = 0 And x Mod 3 0 Then MsgBox 能被5,7整除 ElseIf x Mod 3 = 0 Th

29、en 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 Then n = n + 1 s = s & 7 End If If n 0 Then MsgBox 能被 & s & 这 & n & 个数整除 Else MsgBox

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论