vb教程-分支结构.ppt_第1页
vb教程-分支结构.ppt_第2页
vb教程-分支结构.ppt_第3页
vb教程-分支结构.ppt_第4页
vb教程-分支结构.ppt_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

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

文档简介

1、1,第5章,选择结构程序设计,本章要点: 条件语句 单行结构条件语句If.Then.Else 块结构条件语句If.Then.EndIf 多分支选择语句Select Case.End Select,特点: 根据条件是否成立,决定程序的执行分支,2,5.1 单行结构条件语句,1. 格式 If Then Else 2. 功能 如果成立,则执行 否则执行 3. 说明 (1) : 关系表达式、布尔表达式 数值表达式(0为False,非0为True) 字符串表达式(0为False,非0为True) (2) 、: 可以有多条语句,各语句之间用冒号隔开。 (3)可以没有Else部分,这时必须有。,3,例: I

2、f N0 Then A=A+B:B=B+A Else A=A-B:B=B-A 例: If Xaaa Then Print X 【例5-1】设界面如下图所示,用文本框输入x的值,单击“计算Y”按钮时,根据以下公式计算y的值。,Private Sub Command1_Click() X = Val(Text1.Text) If X = 0 Then Y = Abs(X) Else Y = Log(X) Label3.Caption = Y End Sub,4,4. 注意 (1) 应作为一条语句书写 (2) 无论条件是否成立,都具有共同出口 例: If X = 0 Then X = 1 + X E

3、lse X = 5 - X Y = 1 - X Print Y=; Y 若 X=2 则打印 Y=-2 若 X=-2 则打印 Y=-6,共同出口,X = Val(Text1.Text) Y = Abs(X) If X 0 Then Y = Log(X) Label3.Caption = Y,X = Val(Text1.Text) Y = Log(X) If X = 0 ThenY = Abs(X) Label3.Caption = Y,例: 改写例5-1,比较:,5,5. 嵌套 IF . THEN.IF . THEN .ELSE .ELSE 【例5-2】平面直角坐标系中,不同的象限内,点的坐标的

4、符号有以下4种情况:,在A象限 X0,Y0 B X0 C X0,Y0,任意输入一对坐标值,找出它所在的象限。,6,Private Sub Command1_Click() X = Val(Text1.Text): Y = Val(Text2.Text) If X = 0 Or Y = 0 Then Print 不在任何象限内: _ Exit Sub If X 0 Then If Y 0 Then Print IN A Else _ Print IN D Else If Y 0 Then Print IN B _ Else Print IN C End Sub,7,5.2 块结构条件语句,1.格

5、式 If Then ElseIf Then ElseIf Then Else End If 功能: ,If Then 语句组1 Else 语句组2 End If,注意: 格式书写、嵌套,8,【例5-3】输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。,C40时,打印HOT 30C40时,打印 WARM 20C30时,打印 ROOM TEMPERATURE 10C20时,打印 COOL 0C10时,打印 COLD C0时,打印 FREEZING,9,Private Sub Command1_Click() C = 5 / 9 *

6、 (Val(Text1.Text) - 32) Text2.Text = Format(C, 0.00) If C 40 Then Label2.Caption = HOT ElseIf C 30 Then Label2.Caption = WARM ElseIf C 20 Then Label2.Caption = ROOM TEMPERATURE ElseIf C 10 Then Label2.Caption = COOL ElseIf C 0 Then Label2.Caption = COLD Else Label2.Caption = FREEZING End If End Sub,

7、10,5.3 多分支选择语句,1. 格式 Select Case Case Case Case Else End Select 2. 功能: 根据测试表达式的值,按顺序匹配Case后的表达式,如果匹配成功,则执行该Case下的语句块,然后转到End Select语句之后继续执行。,11,3. 说明 : 数值或字符表达式 Case 表达式表: 表中的表项为如下形式: (1) 表达式1,表达式2. 如: Case 1 , 3 , 5 (2) 表达式1 TO 表达式2 如: Case 10 TO 30 Case A TO Z (3) Is 如: Case Is = 10 Case Is = 0 与

8、Case 0 相同 注意: 测试表达式的类型应与Case后表达式类型一致,且三种形式可以混用,如: Case Is -5 , 0 , 5 To 100,12,Y=,ex+e-x x0,X = Val(Text1.Text) Select Case X Case Is 0 Y = Log(X) / Log(10) End Select Print Y=; Y,X = Val(Text1.Text) Select Case X Case X 0 Y = Log(X) / Log(10) End Select Print Y=; Y,【例5-4】求函数Y的值,13,5.4 应用举例,【例5-5】设计

9、一个口令检测程序,界面如下图,当用户输入的口令正确时,显示“恭喜!,您已成功进入本系统”,否则,显示,“口令错!,请重新输入”。如果连续两次输入了错误口令,在第三次输入完口令后则显示一个消息框,提示“对不起,您不能使用本系统”,然后退出整个应用程序。,14,Private Sub Text1_KeyUp(KeyCode As Integer, _ Shift As Integer) Static I As Integer 保存输入错误口令的次数 If KeyCode = 13 Then 如果按下的键为回车键 If UCase(Text1.Text) = HELLO Then Label2.Ca

10、ption = 恭喜!,您已成功进入本系统 ElseIf I = 0 Or I = 1 Then I = I + 1 Label2.Caption = 口令错!,请重新输入 Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else MsgBox 对不起,您不能使用本系统: End End If End If End Sub,15,【例5-6】求一元二次方程ax2+bx+c=0的解 。 分析: (1) 如果a=0,则不是二次方程,此时如果b=0,则提示重新输入系数;如果b 0,则: x=-c/b (2) 如果a 0,且b2-4ac=0,则

11、有两个相等的实根 (3) 如果a 0,且b2-4ac0,则有两个不等的实根 (4) 如果a 0,且b2-4ac0,则有两个共轭复根,16,Private Sub Command1_Click() A = Val(Text1.Text): B = Val(Text2.Text) C = Val(Text3.Text): Cls CurrentX = 600: CurrentY = 1100 If A = 0 Then If B = 0 Then MsgBox 系数为零,请重新输入 Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Te

12、xt1.Text) Else X = -C / B Print X=; Format(X, 0.000) End If Exit Sub End If,17,Delta = B 2 - 4 * A * C Select Case Delta Case 0 Print X1=X2=; Format(-B / (2 * A), 0.000) Case Is 0 X1 = (-B + Sqr(Delta) / (2 * A) X2 = (-B - Sqr(Delta) / (2 * A) Print X1=; Format(X1, 0.000) CurrentX = 600: CurrentY =

13、1300 Print X2=; Format(X2, 0.000) Case Is 0 A1 = -B / (2 * A) A2 = Sqr(Abs(Delta) / (2 * A),18,Print X1=; Format(A1, 0.000); +; _ Format(A2, 0.000); i CurrentX = 600 CurrentY = 1300 Print X2=; Format(A1, 0.000); -; _ Format(A2, 0.000); i End Select End Sub,19,【例5-6】设计一个四则运算的自我练习应用程序,界面如下图所示。,20,要求:

14、(1) 执行时,当在Text1中输入一种运算符后,在标签Label2中立即出现该运算符号。 (2) 单击“出题”按钮可以产生两个0,1000之间的随机整数,这时由Text2、Label2和Text3组成一个表达式。 (3) 可以通过单击“计算”按钮计算所生成的表达式的值。 (4) 也可以由用户在文本框Text4中输入运算结果通过单击“判断”按钮可以判断输入的运算结果是否正确,然后在Label4上显示“正确”或“错误”。 (5) 单击“退出”按钮结束运行。,21,(1) 在Text1中输入加、减、乘、除符号后,在Label2中立即出现相应的运算符号。 Private Sub Text1_Chan

15、ge() Label2.Caption = Text1.Text End Sub (2) 单击“出题”按钮Command1,生成两个0,1000之间的随机整数。 Private Sub Command1_Click() Randomize Text2.Text = Int(Rnd * 1001) Text3.Text = Int(Rnd * 1001) Text4.Text= End Sub,22,(3) 单击“计算”按钮Command2得出Text4的值。 Private Sub Command2_Click() If Label2.Caption = + Then Text4.Text =

16、 Val(Text2.Text) + Val(Text3.Text) ElseIf Label2.Caption = - Then Text4.Text = Val(Text2.Text) - Val(Text3.Text) ElseIf Label2.Caption = * Then Text4.Text = Val(Text2.Text) * Val(Text3.Text) ElseIf Label2.Caption = / Then Text4.Text = Val(Text2.Text) / Val(Text3.Text) Else a = MsgBox(运算类型错,请重输, , 警告

17、) Text1.SetFocus: Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End If End Sub,23,(4) Text4的内容也可以由用户输入,通过单击“判断”按钮Command3判断输入结果是否正确。 Private Sub Command3_Click() Select Case Label2.Caption Case + If Text4.Text=Val(Text3.Text)+Val(Text2.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 E

18、nd If,24,Case -“ If Text4.Text=Val(Text2.Text)-Val(Text3.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 End If Case * If Text4.Text=Val(Text2.Text)*Val(Text3.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 End If,25,Case / If Text4.Text=Val(Text2.Text)/Val(Text3.Text) Then Label4.Caption = 正确

温馨提示

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

最新文档

评论

0/150

提交评论