《vb第4章 选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《vb第4章 选择结构程序设计.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4 4章章 选择结构程序设计选择结构程序设计对给定的条件进行分析、比较和判断,对给定的条件进行分析、比较和判断,并根据判断结果采取不同的操作。并根据判断结果采取不同的操作。实现语句实现语句If-Then-elseSelect Case/End Select4.1 If条件语句条件语句4.2 Select Case语句语句4.3 条件函数条件函数4.4 单选按钮、复选框、框架单选按钮、复选框、框架4.5 应用举例应用举例4.1.2 单行结构单行结构“条件条件”为为True,执行,执行“语句块语句块1”,否则执行否则执行“语句块语句块2”。最后交汇到一起,执行最后交汇到一起,执行if的下一语句
2、。的下一语句。4.1 If条件语句条件语句单行结构单行结构:条件判断和分支在一行:条件判断和分支在一行块结构块结构:分多行实现。:分多行实现。条件条件语句块语句块1TrueFalse语句块语句块2If n 25 Then txtABC.Text=“ABC”(3)“条件条件”值值逻辑类型的常量、变量、关系表达式或逻辑表达式。逻辑类型的常量、变量、关系表达式或逻辑表达式。数值表达式,数值表达式,“非非0”值值:True,”0”:FalseIf 条件条件 Then 语句块语句块1 Else 语句块语句块2If 条件条件 Then 语句块语句块1(1)“语句块语句块1”和和“语句块语句块2”:一个或多
3、个一个或多个VB语句。语句。(2)“语句块语句块2”省略省略:单分支单分支4.1.2 4.1.2 单行结构的条件语句单行结构的条件语句 例例4-24-2 求一个数求一个数x的绝对值。单分支的的绝对值。单分支的IF语句语句Private Sub CmdOk_Click()Dim x As Single x=Val(Text1.Text)Label3.Caption=x=&x 求绝对值求绝对值 Label3.Caption=Label3.Caption+,x的绝对值是的绝对值是&xEnd SubIf x 0 Then x=-xPrivate Sub CmdEnd_Click()EndEnd Sub
4、If x 0 Then x=-x将将a、b、c三个变量按由小到大排序。实验教材三个变量按由小到大排序。实验教材P10例例4-9 求求a、b、c 中的最大数。中的最大数。Private Sub Form_Click()Dim a As Integer,b As Integer,c As Integer Dim max As Integer a=InputBox(“请输入请输入a的值的值”)b=InputBox(“请输入请输入b的值的值”)c=InputBox(“请输入请输入c的值的值”)max=a If maxb Then max=b If max=0 Then y=sqr(x)Else y=x
5、*x2)y=x*x If x=0 Then y=sqr(x)3)If x=0 Then y=sqr(x)If x=0 Then y=sqr(x)Else y=x*x End If Private Sub Form_Click()Dim x As Single,y As Single x=val(InputBox(“请输入请输入x的值的值”)If x=0 Then y=sqr(x)Else y=x*x Print“x=”;x,”y=”;yEnd SubIf ThenElseIf Then Else End If 4.1.3 块结构块结构“条件条件1”为为True:执行:执行“语句块语句块1”;否
6、则测试否则测试“条件条件2”,“条件条件2”为为True:执行:执行“语句块语句块2”,所有条件都不成立:执行所有条件都不成立:执行“语句块语句块n+1”,之后执行之后执行EndIf后面的语句。后面的语句。表达式1表达式2表达式nTFTF 语句块 n语句块n+1 语句块 2 语句块 1FT【说明说明】(1)End If 不能省略。不能省略。(2)Else和和ElseIf子句都是可选的。子句都是可选的。If ThenElseIf Then Else End If3)有多个)有多个ElseIf选项:多分支形式。选项:多分支形式。If Then Else End If2)只选)只选Else子句:子句
7、:If Then End If1)无可选项:)无可选项:4.1.3 块结构块结构 例例4-44-4 求一元二次方程求一元二次方程ax2+bx+c=0的根,的根,a不等于不等于0。通通过过块块结结构构多多分分支支IF语语句来完成。句来完成。IfElseIfELSE中中依依次次判判别别求求得得虚虚根根、实实根根、等根三种情况。等根三种情况。d=b*b-4*a*cp=-b/(2*a)If d0 Then求两个实根求两个实根r=Sqr(d)/(2*a)x1=p+rx2=p-rPrint“x1=”;x1,”x2=”;x2Else 等于等于0,求两个相等的根,求两个相等的根x1=p:x2=pEnd If
8、4.1.4 条件语句的嵌套条件语句的嵌套例:已知例:已知x,y,z三个数,使得三个数,使得xyz。用一个用一个IF语句和一个嵌套的语句和一个嵌套的IF语句实现:语句实现:If Then If Then End If End IfIf或或Else的语句块中又包含的语句块中又包含If语句。语句。If xy Then t=x:x=y:y=t If yz Then t=y:y=z:z=t If xy Then t=x:x=y:y=t End IfEnd If【注意注意】书写锯齿型;书写锯齿型;If 与与End If配对配对例例4-5 从键盘上输入学生的分数,计算并输出及格(大于等于从键盘上输入学生的分
9、数,计算并输出及格(大于等于6060分的)、不及格人数及平均分数。分的)、不及格人数及平均分数。Private Sub Command1_Click()Dim n,n1 As Single,n2 As Single,score As SingleDim total As Singlemsg$=请输入分数(输入负数结束)msgtitle$=输入数据start:一个标号,与Go To start构成循环score=Val(InputBox(msg$,msgtitle$)输入成绩If score 100 Then 是无效成绩GoTo Finish ,则转到FinishElse 否则,对成绩进行处理
10、求总分 n=n+1 统计学生的个数 n1=n1+1 统计不及格人 Else n2=n2+1 统计及格人数 End IfEnd IfGoTo start 继续输入下一成绩Finish:结束处理Text1.Text=Str$(n2)开始输出结果Text2.Text=Str$(n1)Text3.Text=Str$(total/n)End Sub无条件转移语句无条件转移语句无条件转移语句无条件转移语句total=total+scoreIf score 60 Then4.2 Select Case语句语句 情况语句,适用于一个条件的判断结果有多个定值,情况语句,适用于一个条件的判断结果有多个定值,不同取
11、值对应不同分支。不同取值对应不同分支。Select Case 测试表达式测试表达式 Case 测试值测试值1 语句块语句块1 Case 测试值测试值2 语句块语句块2 Case Else 语句块语句块n End Select 数值型或字符串表达式数值型或字符串表达式【功能功能】“测试表达式测试表达式”的值,依次与的值,依次与测试值测试值比较:比较:匹配匹配:执行该:执行该Case子句后的语句块,子句后的语句块,都不匹配都不匹配:则执行:则执行Case Else子句后的语句块。子句后的语句块。:与与 同类型同类型表达式表达式 例例:“Y”一组枚举表达式一组枚举表达式(用逗号分隔用逗号分隔)2,4
12、,6,8 表达式表达式1 To 表达式表达式2(表达式表达式12)60 to 100Is 关系表达式关系表达式,不能用逻辑运算符不能用逻辑运算符 Is =A And Ucase(strC)=0 And strC 10)y=5+2x (05 Then r=1Elser=2End Ifr=IIf(a5,1,2)IIf函数嵌套:实现多分支判断。函数嵌套:实现多分支判断。y=IIf(x10,0,IIf(x0,5+2*x,x-5)4.3.2 Choose函数函数 4.3 4.3 条件函数条件函数Choose(数字类型变量数字类型变量,值为,值为1 1的返回值,值为的返回值,值为2 2的返回值的返回值)根
13、据根据“数字类型变量数字类型变量”的值,返回参数列表中相应的值。的值,返回参数列表中相应的值。Choose(2,3,4,5,6)变量的值为变量的值为2,返回,返回“3,4,5,6”列表中第列表中第2个值个值4Choose(3,3,4,5,6)返回返回5Choose(nop,”,”,”,”)当当nop=3时,时,返回字符串返回字符串”Choose(5,4,3,2,1)函数:返回函数:返回Null。值非整数值非整数:自动取整。自动取整。值小于值小于 1 或大于列出的选择项或大于列出的选择项数目数目:返回返回Null。4.4 单选按钮、复选框、框架单选按钮、复选框、框架4.4.1 单选按钮与复选框单
14、选按钮与复选框单选按钮单选按钮在在一组中必须且最多只能选中一项一组中必须且最多只能选中一项;被选中时,左侧的圆圈中出现一个黑点;被选中时,左侧的圆圈中出现一个黑点;复选框复选框在在一组中可以同时选中一项或多项,甚至一个不选一组中可以同时选中一项或多项,甚至一个不选。被选中时,左侧的方框中出现一个对勾。被选中时,左侧的方框中出现一个对勾。单选单选复选复选选择性控件选择性控件,用来指示用户进行项目选择。,用来指示用户进行项目选择。Caption:文本标题。:文本标题。Alignment0:控件钮在左边,标题显示在右边。控件钮在左边,标题显示在右边。1:控件钮在右边,标题显示在左边。:控件钮在右边,
15、标题显示在左边。Value(默认属性默认属性)单选钮单选钮 复选框复选框True:选定选定 0-Unchecked:未被选定未被选定False:未选定未选定(默认值默认值)1-Checked:选定选定 2-Grayed:灰色,禁止选择灰色,禁止选择单选钮和复选框单选钮和复选框常用属性常用属性常常用用事事件件-Click,单单击击时时自自动动改改变变状状态态,不不需需要要编写过程。编写过程。应用应用程序中程序中检测检测控件的控件的Value,判断控件当前状态。,判断控件当前状态。单选钮和复选框单选钮和复选框5.1 单选钮和复选框单选钮和复选框 例例4-7 当当选选择择了了“所所在在学学院院”和和
16、“学学习习课课程程”后后,单单击击“确确定定”,则则选选择择结结果果显显示示在在下下面面的的文文本框中。本框中。默认名默认名Name属性属性其它属性及设置其它属性及设置Option1opthhCaption:航海学院航海学院Option2optljCaption:轮机工程学院轮机工程学院Option3OptjsCaption:计算机科学与技术学院计算机科学与技术学院Check1ChksxCaption:高等数学高等数学Check2ChkwlCaption:普通物理普通物理Check3ChklxCaption:理论力学理论力学Check4ChkjgCaption:数据结构数据结构Label1Lb
17、lxyCaption:所在学院,所在学院,FontBold:True,FontSize:5号号Label2LblkcCaption:学习课程,学习课程,FontBold:True,FontSize:5号号Text1TxtxsText:空;空;MultiLine:TrueCommand1cmdokCaption:确定确定【属性设置属性设置】Select Case True Case Opthh.Value DISPLAY=Opthh.Caption Case Optlj.Value DISPLAY=Optlj.Caption Case Optjs.Value DISPLAY=Optjs.Capt
18、ionEnd SelectDISPLAY=您在您在+DISPLAY+,+学习的课程有:学习的课程有:If Chksx.Value Then DISPLAY=DISPLAY+Chksx.Caption+End IfIf Chkwl.Value Then DISPLAY=DISPLAY+Chkwl.Caption+End IfIf Chklx.Value Then DISPLAY=DISPLAY+Chklx.Caption+End IfIf Chkjg.Value Then DISPLAY=DISPLAY+Chkjg.Caption+End IfTxtxs.Text=DISPLAY转换为转换为Bo
19、olean型型非非0:True 0:False(P29)0-Unchecked:未被选定:未被选定1-Checked:选定:选定4.4.2 框架框架 框架框架设设Caption为为 字体字体不同框架中控件相对独立,不互相干扰;不同框架中控件相对独立,不互相干扰;操作更直观、更方便;操作更直观、更方便;把具有同一性质的控件集中在一起。把具有同一性质的控件集中在一起。创建方法:创建方法:先建框架先建框架,然后在其中建立控件然后在其中建立控件。1.框架内的控件都要包在框架内框架内的控件都要包在框架内,否则认为在窗体上;,否则认为在窗体上;2.将框架外的控件拖到框架内,不是框架的一部分。将框架外的控件
20、拖到框架内,不是框架的一部分。5.2 5.2 框架框架常用属性常用属性框架框架常用事件常用事件Click、DblClick:一般不需要编写框架的事件过程。一般不需要编写框架的事件过程。属性名属性名属性值属性值说说 明明 Caption字符串标题名称标题名称,若为空,则框架为封闭的矩形。Enabled逻辑值值为True(默认)时,允许使用框架中的控件;值为False时,不允许使用框架中的控件。Visible逻辑值值为True(默认值)时,对象控件可见;值为False时,框架及控件不可见。4.4.2 框架框架例例4-8 当用户选择了具体的当用户选择了具体的“字体字体”和和“对齐方式对齐方式”后,单
21、击后,单击“确定确定”,通过文本框显示效果。,通过文本框显示效果。默认名默认名Name属性属性其它属性及设置其它属性及设置Option1OptstCaption:宋体宋体Option2OpthtCaption:黑体黑体Option3OptzqCaption:左齐左齐Option4OptjzCaption:居中居中Option5OptyqCaption:右齐右齐Frame1FrmztCaption:字体字体Frame2FrmdqCaption:对齐方式对齐方式Text1TxtxsText:谢谢光临,下次再见!谢谢光临,下次再见!FontSize:12Command1CmdqdCaption:确定
22、确定Command2CmdgbCaption:关闭关闭【属性设置属性设置】Txtxs.FontName=IIf(Optst.Value,宋宋体体,黑体黑体)Select Case True Case Optzq.Value Txtxs.Alignment=0 Case Optjz.Value Txtxs.Alignment=2 Case Optyq.Value Txtxs.Alignment=1End Select例例4-9 求求a、b、c 中的最大数。中的最大数。4.5 应用举例应用举例4.5.1 求最大数、最小数求最大数、最小数Private Sub Form_Click()Dim a A
23、s Integer,b As Integer,c As Integer Dim max As Integer a=InputBox(“请输入请输入a的值的值”)b=InputBox(“请输入请输入b的值的值”)c=InputBox(“请输入请输入c的值的值”)max=a If maxb Then max=b If maxc Then max=c Print a=”;a,”b=”;b,”c=”;c Print“a、b、c中最大数是中最大数是:”;maxEnd Sub4.5 4.5 应用举例应用举例设置一个结果变量并赋初值设置一个结果变量并赋初值累加:累加:0 0计数:计数:0 0累积:累积:1
24、1用赋值语句将满足条件的数据用赋值语句将满足条件的数据x x累入结果变量。累入结果变量。求累加和求累加和Sum:Sum=Sum+x求累积求累积Result:Result=Result*x求个数求个数Count:Count=Count+14.5.2 累和、累积与计数累和、累积与计数例例4-10实现实现110110整数加法和乘法的计算机考试程序。整数加法和乘法的计算机考试程序。定义窗体级变量定义窗体级变量Dim Exp As StringDim Result As SingleDim Right As Integer,Wrong As IntegerPictureBoxPrivate Sub Fo
25、rm_Load()Dim Opt As Integer,Op As String*1Text1.Text=:Label1.Caption=Randomize Select Case OptCase 1Op=+:Result=Num1+Num2Case 2Op=:Result=Num1*Num2End SelectExp=Label1.Caption=End Sub产生两个操作数产生两个操作数Num1=Int(10*Rnd+1)Num2=Int(10*Rnd+1)Opt=Int(2*Rnd+1)产生操作符产生操作符Str(Num1)+Op+Str(Num2)+=ExpPrivate Sub Co
26、mmand1_Click()If Then 答题正确 Picture1.Print Exp;Text1;Tab(12);统计正确题数Else Picture1.Print统计错误题数End IfText1=Form_Load 显示下一题End SubPrivate Sub Command2_Click()显示最终结果显示最终结果Picture1.Print-Picture1.Print 共计算共计算&道题道题,;Picture1.Print 得得&分分End SubVal(Text1)=ResultRight=Right+1Exp;Text1;Tab(12);Wrong=Wrong+1(Rig
27、ht+Wrong)Int(Right/(Right+Wrong)*100)4.5 4.5 应用举例应用举例 例例4-13 判断键盘键入的字符。判断键盘键入的字符。ms=请输入一个字母或数字请输入一个字母或数字“:i=InputBox(ms)If Not IsNumeric(i)Then 键入的不是键入的不是“数字数字”If Len(i)0 Then Select Case i Case A To Z MsgBox 您输入的是大写字母您输入的是大写字母+i Case a To z MsgBox 您输入的是小写字母您输入的是小写字母+i Case Else MsgBox 输入非法!输入非法!End Select End IfElse Select Case Val(i)Case 1,3,5,7,9 MsgBox 您输入的是奇数您输入的是奇数+i Case 2,4,6,8 MsgBox 您输入的是偶数您输入的是偶数+i Case Else MsgBox 输入非法!输入非法!End SelectEnd If