资源预览内容
第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
第9页 / 共108页
第10页 / 共108页
亲,该文档总共108页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第4章 选择结构和循环结构设计,选择程序结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程;在实际应用中,经常遇到一些操作并不复杂,但需要反复多次处理的问题,这类问题,用循环结构的程序处理。 本章主要内容,第4章 选择结构和循环结构设计,退出,条件表达式 关系表达式 / 逻辑表达式,条件语句 If.Then / If.Then.Else 条件语句的嵌套,For 循环结构,While 循环,滚动条和计时器控件,多分支语句,Do 循环结构,选择性控件 单选按钮 / 复选框/列表框/组合框,程序举例,4.1 条件表达式,在条件语句中,作为判断依据的表达式称为“条件表达式” 条件表达式的值为布尔值 条件表达式分为两类:关系表达式以及布尔表达式,4.1.1关系运算符与关系表达式,关系表达式是指用关系运算符将两个表达式连接起来的式子,其值为布尔型。 运算符:, = ,= , 格式: ,说明:,首先计算表达式的值,再进行比较 数值型数据按大小比较; 日期型数据将日期看成“yyyymmdd”的8位整数,按数值大小比较; 字符型数据按ASCII码值进行比较 单精度或双精度数据不能用“=”比较 数学不等式axb不能写成:a=x=b,4.1.2 布尔运算符与布尔表达式,布尔表达式是指用布尔运算符连接若干关系表达式或布尔值而成的式子,其值为布尔型。 常用运算符:Not(非),And(与),Or(或) Not:取反操作 And:只有两个表达式均为True时,结果才为True Or:只有两个表达式均为False时,结果才为False 运算优先顺序:Not(非),And(与),Or(或),4.1.3 运算符的优先顺序,在一个表达式中有多种操作时,运算的优先顺序为: 算术运算=字符运算=关系运算=布尔运算 说明: 同级运算:从左到右依次进行 括号中的运算优先,举例,1、x=4,y=-1,a=7,b=-8.5,计算表达式x+ya+b and not y0 or y mod 100=0 and y mod 400=0,4.2 选择结构程序设计,1、单行结构条件语句 IFTHENELSE 2、IIF函数的语法结构为: IIF (,) 3、块结构条件语句 If Then Else 语句序列2 End if,4、多分支条件选择语句Select Case Select Case Case Case Case Else End Select,4.3.1 单行结构条件语句 IFTHENELSE,单行IF语句的语法格式为: If Then Else 说明: (1)可以是关系表达式、布尔表达式或数值表达式。若为数值表达式,非0为真,0为假 (2)如没有Else子句,则为必要参数,例4-1输入x,计算y的值。其中:,1+x (x0) Y= 1-2x (x0) 分析:y是一个分段函数,流程图如下 设计步骤 (1)建立用户界面 (2)设置属性,(3)编写代码,Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x = 0 Then y = 1 + x Else y = 1 - 2 * x Text2.Text = y End Sub,补充例题1编写程序,对学习成绩优秀的学生进行奖励,获奖条件如下:,(1)所考五门课的总分超过450分 (2)每门课的成绩都在88分以上 (3)前三门课的成绩都在95分以上,其他两门的成绩都在80分以上 分析:输入五门课的成绩分别为S1,S2,S3,S4,S5 三个条件的表达式为: (1)S1+S2+S3+S4+S5=450 (2)S1=88 AND S2=88 AND S3=88 AND S4=88 AND S5=88 (3)S1=95 AND S2=95 AND S3=95 AND S4=80 AND S5=80,流程图,设计步骤,(1)建立用户界面并设置属性:Label1、Command1,利用输入对话框输入数据 (2)编写代码 Private Sub Command1_Click() Dim s1 As Single, s2 As Single, s3 As Single, s4 As Single, s5 As Single s1 = Val(InputBox(“请输入第1门课的成绩“, “输入框“, 0) s2 = Val(InputBox(“请输入第2门课的成绩“, “输入框“, 0) s3 = Val(InputBox(“请输入第3门课的成绩“, “输入框“, 0) s4 = Val(InputBox(“请输入第4门课的成绩“, “输入框“, 0) s5 = Val(InputBox(“请输入第5门课的成绩“, “输入框“, 0),t1 = (s1 + s2 + s3 + s4 + s5 = 450) t2 = (s1 = 88 And s2 = 88 And s3 = 88 And s4 = 88 And s5 = 88) t3 = (s1 = 95 And s2 = 95 And s3 = 95 And s4 = 80 And s5 = 80) If t1 Or t2 Or t3 Then p = “ 可以获奖!“ Else p = “ 不能获奖!“ p = Str(s1) & “,“ & Str(s2) & “,“ & Str(s3) & “,“ & Str(s4) & “,“ & Str(s5) & Chr(13) & p Label1.Caption = “该生5门课的成绩分别是:“ & Chr(13) & p End Sub,补充例题2利用输入框函数输入3个不同的数a,b,c,选出其中最大的数,流程图如右图 设计步骤 (1)设计界面并设置属性(如图),(2)编写代码 Dim a As Single, b As Single, c As Single a = Val(InputBox(“请输入第1个数:“, “输入框“, 0) b = Val(InputBox(“请输入第2个数:“, “输入框“, 0) c = Val(InputBox(“请输入第3个数:“, “输入框“, 0) If a b And a c Then p = a If b a And b c Then p = b If c a And c b Then p = c Label1.Caption = a & “,“ & b & “,“ & c & “三个数中最大的数是:“ & p,4.3.2 使用IIF函数,IIF函数的语法结构为: IIF (,) 例: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) y = IIf(x = 0, 1 + x, 1 - 2 * x) Text2.Text = y End Sub,4.3.3 块结构条件语句,语法格式: If Then Else 语句序列2 End if 说明:必须以End If结束,例: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x = 0 Then y = 1 + x Else y = 1 - 2 * x End if Text2.Text = y End Sub,4.3.4 If语句的嵌套,1、If语句的嵌套 如果在If语句中的或本身又是一个If语句,则称为If语句的嵌套,例4-8铁路托运行李,规定每张票托运费计算方法为:(1)行李重量不超过50kg时,0.25元/kg;(2)超过50kg而不超过100kg时,超过部分按0.35元/kg收费;(3)超过100kg时,其超过部分按0.45元/kg计算。编写程序,输入行李重量,计算并输出托运费用,分析:设行李重量为Wkg,应付费用为x元,运费计算公式为: 0.25*w (w100) 设计步骤: (1)建立用户界面Label1,Label2,Command1,Text1,Text2并设置属性,(2)编写代码Private Sub Command1_Click() Dim w As Single, x As Single w = Val(Text1.Text) If w = 50 Then x = 0.25 * w Else If w = 100 Then x = 0.25 * 50 + 0.35 * (w - 50) Else x = 0.25 * 50 + 0.35 * 50 + 0.45 * (w - 100) End If End If Text2.Text = x End Sub,2、If语句的嵌套格式ElseIf 语法格式: If Then 语句序列1 ElseIf Then 语句序列2 Else 语句序列n End If,说明 (1)Else和ElseIf均为可选,可以有多个ElseIf子句。 (2)如果条件1为False,则对每个ElseIf语句的条件判断,如果为True时,则执行其后的Then中的语句,否则,执行Else后的语句,例4-9每位顾客一次购物 (1)在1000元以上者,按九五折优惠 (2)在2000元以上者,按九折优惠 (3)在3000元以上者,按八五折优惠 (4)在5000元以上者,按八折优惠 编写程序,输入购物价,计算并输出优惠价 分析:设购物款为x元,优惠价为y元,付款公式为: x (x=5000),编写代码(If语句的嵌套) Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x 1000 Then y = x Else If x 2000 Then y = 0.95 * x Else,If x 3000 Then y = 0.9 * x Else If x 5000 Then y = 0.85 * x Else y = 0.8 * x End If End If End If End If Text2.Text = y End Sub,编写代码(Elseif嵌套格式) Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x 1000 Then y = x ElseIf x 2000 Then y = 0.95 * x,ElseIf x 3000 Then y = 0.9 * x ElseIf x 5000 Then y = 0.85 * x Else y = 0.8 * x End If Text2.Text = y End Sub,4.4多分支条件选择语句Select Case,Select Case语句也称为情况语句。 从多个条件语句中,选择一个条件为真的路线作为执行路线。 其流程图为:,4.4 .1 Select Case结构与语法,语法格式: Select Case Case Case Case Else End Select,说明: 可是任何字符串或数值表达式,通常为变量或常量 用来测试其值是否与相匹配,其形式是字符或数值表达式,也可以是指定的范围。如:Case 2,4,6,8 Case 1 TO 20, Case Is100,4.4 .2 Select Case结构的应用 例4-10在例4-9中使用Select Case语句计算
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号