第6讲 分支结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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? 假
相关文档
最新文档