第6讲 分支结构
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Label1.Caption = "面积"
Label1.ForeColor = vbRed Text1.Text = "" Command1.Caption = "输入" End Sub
Dim a!, b!, c!, p!, s! a = InputBox("请输入三角形的第一个边:") b = InputBox("请输入三角形的第二个边:") c = InputBox("请输入三角形的第三个边:") If a > 0 And b > 0 And c > 0 Then If a + b > c And b + c > a And a + c > b Then p = (a + b + c) / 2 s = Sqr(p * (p - a) * (p - b) * (p - c)) Print Print "三角形的三边长分别为:"; a; b; c Text1.Text = s Else m = MsgBox("不能构成三角形") End If Else MsgBox("输入的数据无效") End If
个 ElseIf 字句。 2、如某一条件成立,就执行其下面的语句块;如果 所有条件均不成立,则执行 Else 后面的语句。
例:根据输入的成绩转换为成绩等级
Private Sub Form_Load() Form1.Caption = "成绩" Label1.Caption = "输入分数" Label2.Caption = "成绩等级" Command1.Caption = "转换"
流 程 图
开始 输入a,b,c
T
a>0 and b>0 and c>0?
F
弹出信息框 输入无效
a+b>c and b+c>a and a+c>b?
T
计算
F
弹出信息框不 能构成三角形
输出结果
结束
Private Sub Form_Load()
Form1.FontSize = 14 Form1.Caption = "三角形"
嵌套if语句
• if语句嵌套的格式
if(表达式1)Then if(表达式2) 内 嵌 if子句 {语句1} if else {语句2} 1 else if(表达式3) 内 else 子句 嵌 {语句3} else if {语句4} 2 End if
• 执行过程
真 式1为真? 假
真
式2为真? 退 出
3、Is关系型表达式
三种形式可混合使用 Case “a”,“e”, “f”
Case 1 to 10
Case 1,2,3,Is>10
【例】输入百分制成绩转换为优良中差等级。
Private Sub Form_Load() ' 设计窗体
Form1.Caption = "成绩"
Label1.Caption = "输入分数" Label2.Caption = "成绩等级" Command1.Caption = "转换" Text1.Text = "" Text2.Text = "" End Sub
假
内嵌 if2
语句1
语句2
退 出
嵌套if 举例
【例】 输入三边求三角形面积(输入三边a b c,考虑 输入三边不合理的情况)
分析:
(1).构成三角形的条件:
a>0 and b>0 and c>0
a+b>c and b+c>a and a+c>b
(2).三角形的面积公式: p=(a+b+c)/2 S = sqr (p * ( p – a ) * ( p – b ) * ( p – c )) (3).设计界面:标签,文本框,命令按钮,(设置属性值)。 (4).定义变量 (5).使用InputBox输入函数,分别输入三边。 (6).使用MsgBox信息框显示错误信息。 (7).计算三角形的面积,并将面积的值放入文本框。 (8).调试运行。
Print " x为负数“
End Select
语句块n+1 ]
End Select
说明
“测试表达式”可以是数值表达式或字符串表达式,通常为变量。 “表达式列表” 可以是如下三种形式的一种。
1、一组由逗号分隔的枚举值 2、值1 to 值2 (包含值1与值2)
Select Case x Case 0 Print "x="; x Case is>0 Print " x为正数" Case is<0 Print " x为负数"
二、If … Then … Else 双分支结构
格式1:If <表达式> Then 语句块1
格式2:If <表达式> 语句块1 Then
Else
语句块2
Else
语句块2 End If
【例】 已知某书店图书均九折销售,一次购书100元 以上(包括100元)打八五折。编写程序,根据购书金
额,计算并应付款。
Private Sub Command1_Click() Dim score % score = Val(Text1.Text) Select Case score\10 Case 10 , 9 Text2.Text = "优秀" Case 8 Text2.Text = "良好" Case 7 Text2.Text = "中等" Case 60 Text2.Text = "及格" Case 5,4 Text2.Text = "补考" Case Else Text2.Text = "重修" End Select End Sub
•
•
Case x>0 and y>0
print “在第一象限”
• ElesIf x<0 and y>0
• Case x<0 and y>0
• ElesIf x<0 and y<0
• End if
•
•
print “在第二象限”
print “在第三象限”
• Case x<0 and y<0
•
End Select
money<100 ?
T(真)
money =0.9*x
F(假)
money =0.85*x
输出money值
程序代码
Private Sub Command1_Click() Dim money! money = Text1.Text If money < 100 Then money = money * 0.9 Else money = money * 0.85 End If Text2.Text = money End Sub
ElseIf score>= 60 Then
Text2.Text = "及格" ElseIf score>= 40 Then
Text2.Text = "补考"
Else Text2.Text = "重修"
End If
Dim score As Single score = Val(Text1.Text) Select Case score Case Is >= 90 Text2.Text = "优秀" Case Is >= 80 Text2.Text = "良好" Case Is >= 70 Text2.Text = "中等" Case 60 To 69 Text2.Text = "及格" Case Is >= 40 Text2.Text = "补考" Case Else Text2.Text = "重修" End Select
1、If …Then (单分支结构) 2、If … Then … Else (双分支)
3、If … Then … ElseIf (多分支结构)
4、Select Case (多分支结构)
5、 If 语句的嵌套
If…Then单分支
格式(1):If <条件> Then
<语句1> End If 格式(2):If <条件> Then <语句1> 行If语句
Dim score As Single score= Val(Text1.Text) If score>= 90 Then Text2.Text = "优秀" ElseIf score>= 80 Then
Text2.Text = "良好"
ElseIf score>= 70 Then Text2.Text = "中等"
Text1.Text = ""
Text2.Text = "" End Sub
Private Sub Command1_Click() Dim score% score= Val(Text1.Text) If score>= 90 Then Text2.Text = "优秀" ElseIf score>= 80 Then Text2.Text = "良好" ElseIf score>= 70 Then Text2.Text = "中等" ElseIf score>= 60 Then Text2.Text = "及格" ElseIf score>= 40 Then Text2.Text = "补考" Else Text2.Text = "重修" End If End Sub
比较
• 对于多分支结构,用Select Case语句更直观。但 不是所有的If ElesIf 都可以用Select Case替换。 当对多个变量进行判断是只能用If ElesIf 语句实现。
• If x>0 and y>0 • Select Case x,y
•
• •
print “在第一象限”
print “在第二象限” print “在第三象限”
行If语句
• Private Sub Command1_Click()
•
•
Dim num%
num = Val(Text1.Text)
•
•
If num < 0 Then num = -num
Text2.Text = num
• End Sub
块If语句
• Private Sub Command1_Click()
思考单分支如何实现?
Select Case多分支语句
在分支情况较多的情况下,用if实现的多 分支显得有些凌乱,程序流程不够清晰,用 Select Case多分支替代If…Then…ElseIf结 构,程序工整清晰,易读性更强。
Select Case语法格式
Select Case
Case
测试表达式
第6讲 选择结构
控制教研室:牟学鹏
内 容
– 选择结构:
– 单分支选择结构 – 双分支选择结构 – 多分支选择结构
– 多分支Select语句
– 嵌套if语句格式
引例1
•引例1: QQ登录验证
引例2
•引例2: 人机对弈
选择结构程序设计
• 问题的提出: • 什么使计算机具备了判断能力?
VB的选择结构
块If语句
功能:若“条件”为真,执行语句1,否则执行下面语句。
说明:
1.“条件”为关系表达式或逻辑表达式。a>0 and b>0 使用“:”分开。 If x<y Then t=x:x=y:y=t
Leabharlann Baidu
2.行If语句要求在一行内书写完毕,若语句1有多条语句,
If…Then单分支
【例】输入一个数字,输出该数的绝对值
a、c交换
输出a
结束
单分支if语句举例
【例】输入三个数,输出其中最大的数。 Private Sub Command1_Click() Dim a!, b!, c! a = Text1.Text b = Text2.Text c = Text3.Text If a < b Then a=b End If If a < c Then a=c End If Text4.Text = a End Sub
表达式列表1 语句块1
Dim x As Integer x = InputBox("输入X的值:")
Select Case x
Case 0 Print "x="; x
Case
表达式列表2
语句块2 ……
Case is>0
Print " x为正数" Case is<0
Case
表达式列表n
语句块n
[ Case Else
三.If…Then…ElseIf多分支语句
• ElseIf语句
If 表达式1 Then A 语句1 ElseIf 表达式2 Then B 语句2 ElseIf 表达式3 Then C 语句3 Else D 语句4 End If
真
• 执行过程
式1为真?
假
式2为真?
A B
真
假
真
C
退 出
假
D
说明
1、关键字 ElseIf 中间没有空格,可以放置任意多
•
•
Dim num%
num = Val(Text1.Text)
•
•
If num < 0 Then
num = -num
•
•
End If
Text2.Text = num
• End Sub
单分支if语句举例
【例】 输入三个数字,输出其中的最大值
输入a、b、c a<b? 假 真 a、b交换 真 a<c? 假