资源预览内容
第1页 / 共80页
第2页 / 共80页
第3页 / 共80页
第4页 / 共80页
第5页 / 共80页
第6页 / 共80页
第7页 / 共80页
第8页 / 共80页
第9页 / 共80页
第10页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
主讲:冯主讲:冯 元元 Email: feng.yyy Email: feng.yyy Visual Basic Visual Basic 程序设计程序设计 1 第五章 控制结构 5.1 If语句 5.2 Select Case语句 5.3 Do Loop语句 5.4 ForNext语句 5.5 循环的嵌套 5.6 控制结构的应用 2 5.1 If语句 本节知识点: 单行形式的IfThen语句 块形式的IfThenEndif语句 单行形式的IfThenElse语句 块形式的IfThenElseEndif语句 If语句的嵌套 IfThenElseIfEndif语句 3 5.1 If语句 v程序运行的基本流程: 事件过程:地位平等,那个事件先发生就先 执行那个事件对应的过程。 事件过程内部:由左而右,由上而下依次执 行各个语句,直到整个程序结束,称为顺序 结构。 v问题:如何根据条件决定程序的执行顺序? 显然,只有顺序结构还不行,还需要条件判 断或选择等其他的控制结构。 4 5.1 If语句 vVB提供了四种控制结构: 顺序结构: 分支结构: If语句、Select Case语句; 循结结构: DoLoop语句、ForNext语句 、 WhileWend语句; 跳转结构: GoTo语句、GoSub语句。 5 5.1 If语句 vIf语句用来实现分支结构,也称为条件语句 : 单行形式的IfThen语句 块形式的IfThenEndif语句 单行形式的IfThenElse语句 块形式的IfThenElseEndif语句 IfThenElseIfEndif语句 6 5.1 If语句 1、单行形式的IfThen语句 v单行IfThen语句只能写在一个语句行上 。格式:if 条件 then 语句块 v说明: 条件:应该是一个关系或逻辑表达式,或结 果可以转换为逻辑值的表达式。 语句块:是一条或多条语句(允许无语句)。 语句间用“:”分隔,如需换行要使用续行符“ _”。 7 5.1 If语句 v语句执行过程:当程序执行到该语句时,先 检查“条件”表达式的值是否为“true”;如为 “true”,则执行then后的语句块,并接着执 行下面的语句;否则直接执行下一条语句。 v例子:求y = |x| 方法一:y = sqr(abs(x) 方法二:if x50 15 5.1 If语句 v程序代码: Private Sub Command1_Click() Dim weight as single,pay as single weight= Text1.Text If weight 50 Then pay =(weight - 50)* 0.5 + 50 * 0.2 Else pay = weight * 0.2 End If Text2.Text = pay End Sub 16 5.1 If语句 5、If语句的嵌套 v一个if语句的语句 块中包含了另一个 if语句称为if语句 的嵌套。VB允许if 语句的多层嵌套。 if 条件1 then if 条件2 then 语句块1 else 语句块2 endif else if 条件3 then 语句块3 else 语句块4 endif endif 17 5.1 If语句 v 例子:使用按纽cmd1的Click事件过程判断文本框中txt1 中输入数的奇偶性及所在区间,并在txt2中显示结果。 Private Sub cmd1_Click() dim int1 as Integer int1=Cint(txt1.text) 将txt1.text的值四舍五入转换为整数 if int1100 then txt2.text=“这是一个大于100的偶数” else txt2.text=“这是一个不大于100的偶数” endif else if int1100 then txt2.text=“这是一个大于100的奇数” else txt2.text=“这是一个不大于100的奇数” endif endif endif End Sub 18 5.1 If语句 6、IfThenElseIfEndIf语句 v 语法格式:if 条件1 then 语句块1 elseif 条件2 then 语句块2 elseif 条件n then 语句块n else 语句块n+1 endif 19 5.1 If语句 v语句的执行流程: 语句块 1 条件1 False True 条件2 条件3 语句块 3语句块 2语句块 n+1 True True False False 20 5.1 If语句 v说明: 语句的执行从“条件1”开始顺序判断,直到“ 条件n”,一旦遇到满足的条件,就执行相应 的语句块,然后结束if语句的执行。 如果从“条件1”到“条件n”都不满足,则执行 “else”后面的“语句块n+1”。 “else”和“语句块n+1”是可选的,可以不要 。 v注意:“elseif”中间没有空格,不要写成 “else if” 21 5.1 If语句 v 例子:窗体上有一个按纽cmdrank和两个文本框 txtInput、txtOutput。在文本框txtInput中输入成绩 ,单击按纽后,在txtOutput中显示等级。 Private Sub cmd1_Click() dim intMark as Integer intMark=Cint(txtInput.text) if intMark=90 then txtOutput.text=“优秀” elseif intMark=80 then txtOutput.text=“良好” elseif intMark=70 then txtOutput.text=“中等” elseif intMark=60 then txtOutput.text=“及格” else txtOutput.text=“不及格” endif End Sub 22 5.2 Select Case语句 v 语法格式:Select case 测试表达式 case 表达式1 语句块1 case 表达式2 语句块2 case 表达式n 语句块n case else 语句块n+1 End select 23 5.2 Select Case语句 v语句的执行过程: “测试表达式”为算术或字符串表达式。而逻 辑表达式仅有两个可能的取值,不适合用在 该语句中。语句执行流程见教材图5.7。 当执行到Select Case语句时,首先计算测 试表达式的值,然后用这个值由上到下依次 与各个Case语句之后的表达式进行比较,如 果匹配,则执行对应的语句块,然后执行 End select之后的语句。 24 5.2 Select Case语句 如果没有匹配的Case语句,则执行Case Else之后的语句块(该部分为可选)。然后执 行End select之后的语句。 25 5.2 Select Case语句 如果没有匹配的Case语句,则执行Case Else之后的语句块(该部分为可选)。然后执 行End select之后的语句。 26 5.2 Select Case语句 v 例子:用Select Case语句重写上面的例子。 Private Sub cmd1_Click() dim intMark as Integer intMark=Cint(txtInput.text) Select Case intMark Case Is=90 txtOutput.text=“优秀” Case Is=80 txtOutput.text=“良好” Case Is=70 txtOutput.text=“中等” Case Is=60 txtOutput.text=“及格” Case else txtOutput.text=“不及格” Endselect End Sub 27 5.2 Select Case语句 v多匹配情况:如果测试表达式的结果与多个 Case语句后的表达式匹配,只执行第一个匹 配的Case语句之后的语句块(顺序从上到下) 。 vCase关键字后表达式的写法: 将单个常量、变量、表达式直接写在Case关 键词之后。如Case 90、Case “tom”。用于 测试相等匹配。 用关键词“to”连接两个值表示范围(闭区间) 。如:Case 1 to 5, Case “A”to “C”。这 时,只要值属于这个区间,就认为匹配。 28 5.2 Select Case语句 用关键词“Is”和比较运算符来表示一个范围 。 如:Case Is=80, Case Is“” 。这时,只要值属于这个区间,就认为匹配 。 以上三种形式的组合(要用逗号分开)。 如:Case 6,8 to 10,Is12。在这些用逗 号分开的项中有一项匹配,就认为匹配。 29 5.2 Select Case语句 v 例子:下面的事件过程判断两个文本框中整数之和 落在哪个区间中。注意Case后面条件是如何给定的 。 Private Sub cmd1_Click() dim int1 as Integer,int2 as Integer int1=Cint(txt1.text):int2=Cint(txt2.text) Select Case int1+int2 Case 0 txt3.text=“和为0” Case 1 to 5 txt3.text=“和在1和5之间(包括1、5)” Case 6,7 to 8 txt3.text=“和在6和8之间(包括6、8)” Case Isa and a+cb then p = (a+b+c)/2 lbl6.caption = sqr(p*(p-a)*(p-b)*(p-c) else lbl6.caption = “三角形任意两边之和大于第三边” end if end if End Sub 31 上机作业四: v题目1: 在窗体上输入平面坐标系中一个点的 坐标,然后判断该点所在的象限并将结果显示 在窗体上。界面如下: 32 上机作业四: v题目2: 在文本框中输入一个1,5区间的数, 单击按钮判断该数是整数还是小数及所在的准 确区间。 v题目3:程序运行后,显示空白窗体,单击窗体 则显示一幅背景图片,再单击图片消失,如此 循环。(要求用条件语句实现) (提示:要用到LoadPicture()函数) 33 5.2 Select Case语句 Private Sub command1_Click() dim a as Integer ,b as Integer ,c as Integer a=2 : b=3 : c=4 print a=b=c a=b=c print a End Sub 34 5.2 Select Case语句 一、求表达式的值(已知:a3,b4,c5) 5、4*(76-43)2 Imp 3 intInput lngAmount = lngAmount*int1 int1 = int1+1 Loop txtResult.text = lngAmount End Sub 49 5.3 DoLoop语句 4、“直到型循环”的第二种形式 v语法格式:Do 语句块 (循环体) Loop Until 条件表达式 v语句执行过程:当执行到Do时,首先执行一 次循环体语句块,然后计算Loop Until后面 条件表达式的值。如果值为False,则返回到 开始处再次执行循环体语句块,否则中止循 环语句的执行,接着执行Loop后的语句。 50 5.3 DoLoop语句 v语句的执行流程 v说明: 这种形式的循环语句 可以保证循环体至少 被执行一次。 条件 语句
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号