1第3章选择结构程序设计掌握关系运算符和关系表达式的使用掌握逻辑运算符和逻辑表达式的使用掌握单分支If语句、双分支If语句的使用掌握多分支If语句、SelectCase语句的使用掌握If语句嵌套结构的使用掌握单选按钮、复选框和框架控件的使用学习目标2第3章选择结构程序设计知识结构图案例1数据排大小选择结构程序设计案例2计算三角形面积案例3漂流四方案例4判断属相案例5龟兔赛跑多分支SelectCase语句关系运算符与表达式单分支If语句逻辑运算符与表达式双分支If语句多分支If语句If语句的嵌套单选按钮、复选框框架的使用33.1案例1——数据排大小案例1数据排大小案例演示案例描述案例分析案例设计相关知识43.1案例1——数据排大小设计了一个2个数比较大小的程序,运行后单击“新数据”按钮,在两个文本框内显示产生的两位随机整数,如图3.1所示;单击“排大小”按钮后,大数显示在左边的文本框内,小数显示在右边的文本框内,如图3.2所示。案例描述图3.1产生新数据图3.2“排大小”的结果53.1案例1——数据排大小用户界面分析标签Label控件用来显示提示信息文本框TextBox用来输入数据命令按钮Command用来执行有关操作程序分析“新数据”按钮功能:案例分析用Rnd函数产生2个10~100之间的随机数a、bText1中显示aText2中显示b63.1案例1——数据排大小程序分析“排大小”按钮的功能:案例分析交换a和bab?Text1中显示aText2中显示bTFtemp=aa=bb=temp73.1案例1——数据排大小界面设计:2个标签控件2个文本框控件2个命令按钮控件案例设计标签文本框命令按钮83.1案例1——数据排大小属性设置案例设计对象属性名称属性值Form1Caption数据排大小Label1Caption第一个数Label2Caption第二个数Text1Text置空Text2Text置空Command1Caption新数据Command2Caption排大小93.1案例1——数据排大小代码设计案例设计Dima%,b%PrivateSubCommand1_Click()Randomizea=Int(90*Rnd+10)b=Int(90*Rnd+10)Text1.Text=aText2.Text=bEndSub定义模块级变量a和b初始化随机数种子产生两位的随机整数103.1案例1——数据排大小代码设计案例设计PrivateSubCommand2_Click()DimtempAsIntegerIfabThentemp=aa=bb=tempEndIfText1.Text=aText2.Text=bEndSub排大小如果ab成立,则交换a和b的值113.1案例1——数据排大小相关知识关系运算符与关系表达式单分支If语句122121.关系运算符与关系表达式关系运算符的作用是将两个操作数的大小进行比较。关系运算符运算符表示含义应用举例结果=等于1=2False大于21True=大于或等于BC=ABTrue小于12True=小于或等于B=AFalse不等于12True131.关系运算符与关系表达式一个关系运算符将两个进行比较的表达式连接起来就构成关系表达式。关系表达式的值:True(真)和False(假)关系运算符之间的运算优先级相同.例如:3+49“china””beijing”#5/30/2012##10/8/2012#关系表达式FalseTrueTrue141.关系运算符与关系表达式使用关系运算符进行比较时,需注意以下规则:(1)数值型数据按照数值的大小进行比较。(2)字符串型数据按照字符的ASCII码值从左到右逐一比较,直到出现不同的字符为止。例如“BEDC”“BD”的结果为True。(3)日期型数据按照日期的先后比较,越往后的日期越大。#8/8/2012##10/8/2012#的结果为False。(4)汉字以机内码为序进行比较。关系表达式152.单分支If语句对于复杂问题,仅采用顺序结构是满足不了要求的。VB中通过If条件语句和SelectCase语句来实现选择结构,即根据条件选择执行不同的分支。If条件语句还有多种形式:单分支、双分支和多分支等。单分支If语句格式有如下两种:If表达式Then语句块EndIf关系表达式或逻辑表达式一条语句,也可以是多条语句162.单分支If语句单分支If语句格式有如下两种:If语句的执行流程:If表达式Then语句一条语句,或用冒号分隔的多条语句,必须写在一行上T表达式?语句块F173.2案例2——计算三角形面积案例2计算三角形面积案例演示案例描述案例分析案例设计相关知识183.2案例2——计算三角形面积计算三角形面积程序运行后在文本框内输入三角形的三条边的值,如图3.5所示;单击“计算三角形面积”按钮后,由MsgBox语句显示三角形的面积,如图3.6所示;如果输入的三条边的值不能构成三角形,如图3.7所示,则弹出消息框提示“不能构成三角形”,如图3.8所示;案例描述图3.5输入三条边的值图3.6计算三角形面积图3.7三条边的值不能构成三角形图3.8错误提示193.2案例2——计算三角形面积用户界面分析标签Label控件用来显示提示信息文本框TextBox用来输入数据命令按钮Command用来执行有关操作程序分析“清除”按钮功能:“结束”按钮功能:结束程序运行。案例分析清除已有的数据将输入焦点置入第一个文本框,等待输入新的数据。203.2案例2——计算三角形面积程序分析“计算三角形面积”按钮功能;案例分析接收三边的值x,y,z(x+yz)And(x+zy)And(y+zx)?计算并输出面积输出错误提示信息TF213.2案例2——计算三角形面积界面设计:3个标签控件3个文本框控件3个命令按钮控件案例设计命令按钮文本框标签223.2案例2——计算三角形面积属性设置案例设计对象属性名称属性值Fomr1Caption计算三角形面积Label1Caption第一条边Label2Caption第二条边Label3Caption第三条边Text1~Text3Text置空Command1Caption计算三角形面积Command2Caption清除Command1Caption结束233.2案例2——计算三角形面积代码设计案例设计PrivateSubCommand1_Click()DimxAsSingle,yAsSingle,zAsSingle,c,areaAsSinglex=Val(Text1.Text)y=Val(Text2.Text)z=Val(Text3.Text)If(x+yz)And(x+zy)And(y+zx)Thenc=(x+y+z)/2area=Sqr(c*(c-x)*(c-y)*(c-z))MsgBox三角形面积是:&Format(area,###.00),,三角形面积“ElseMsgBox不能构成三角形,,警告“EndIfEndSub显示计算结果判定输入的三条边能否构成三角形计算三角向面积计算三角形面积243.2案例2——计算三角形面积代码设计案例设计PrivateSubCommand2_Click()Text1.Text=Text2.Text=Text3.Text=Text1.SetFocusEndSubPrivateSubCommand3_Click()EndEndSub使文本框获得输入焦点结束退出程序清除清空文本框253.2案例2——计算三角形面积相关知识逻辑运算符与逻辑表达式双分支If语句122261.逻辑运算符与逻辑表达式逻辑运算又称为布尔运算,其运算对象是逻辑型的常量、变量或表达式,运算结果仍然是逻辑值True或False逻辑运算符运算符含义优先级说明应用举例结果Not取反1操作数为真,结果为假操作数为假,结果为真Not12TrueAnd与2两个操作数都为真时,结果才为真;否则结果为假21And43TrueOr或3两个操作数都为假时,结果为假;否则结果为真21Or23False271.逻辑运算符与逻辑表达式逻辑运算符和逻辑运算对象构成了逻辑表达式,常用于多个关系表达式进行逻辑运算。逻辑运算符有优先级:例如:逻辑表达式NotAndOr10≤x≤20x=10Andx=20判定三角形(x+yz)And(x+zy)And(y+zx)判断闰年(YearMod4=0AndyearMod1000)Or(yearMod400=0)判断ax2+bx+c=0的实根b^2-4*a*c=0282.双分支If语句双分支If语句的格式有如下两种:If表达式Then语句块1Else语句块2EndIfIf表达式Then语句1Else语句2有多条语句,则语句之间必须用冒号分隔,并且语句都应写在同一行292.双分支If语句双分支If语句的执行流程TF表达式?语句块1语句块2303.3案例3——漂流四方案例3漂流四方案例演示案例描述案例分析案例设计相关知识313.3案例3——漂流四方本案例设计了一个“漂流四方”程序,如图3.11所示;按键盘上的↑、↓、←、→四个方向键控制小图片框沿着上、下、左、右四个方向移动,如图3.12所示。案例描述图3.11程序运行初始界面图3.12小图片框移动效果323.3案例3——漂流四方用户界面分析标签Label用来显示提示信息图片框PictureBox用来显示移动的图片和背景图片(Picture1用做容器控件,Picture2作为移动的对象)程序分析使用Picture1控件的KeyDown事件过程处理按键事件,该过程中的KeyCode参数返回被按下键的代码,例如:当按下↑键时,KeyCode参数的值为38。案例分析333.3案例3——漂流四方程序分析采用多分支If语句处理↑、↓、←、→键被按下的4种不同情况:案例分析小图片框向下运动KeyCode=37小图片框向左运动KeyCode=38小图片框向上运动TFKeyCode=39小图片框向右运动FTTKeyCode=40FTF343.3案例3——漂流四方界面设计:1个标签控件2个图片框控件案例设计标签图片框(移动对象)图片框(容器)353.3案例3——漂流四方属性设置案例设计对象属性名称属性值Form1Caption漂流四方Label1Caption按↑、↓、←、→键可控制图片移动Picture1Picture“背景.jpg”Picture2Picture“snake.jpg”363.3案例3——漂流四方代码设计案例设计PrivateSubForm_Load()Picture2.Left=0EndSubPrivateSubPicture1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=37ThenPicture2.Left=Picture2.Left-100ElseIfKeyCode=40ThenPicture2.Top=Picture2.Top+100ElseIfKeyCode=39ThenPicture2.Left=Picture2.Left+100ElseIfKeyCode=38ThenPicture2.Top=Picture2.Top-100EndIfEndSub按下键的代码窗体装载事件按下↑键按下→键按下↓键按下←键373.3案例3——漂流四方相关知识多分支If语句If语句的嵌套122381.多分支If语句当实际处理的问题有多种条件时,要用到多分支If语句。其语句格式如下:If表达式1Then语句块1ElseIf表达式2Then语句块2…[Else语句块n+1]EndIf关系表达式或逻辑表达式可选项,表示上面的表达式的值都是False时,则执行语句块n+1不能写成ElseI