《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构

上传人:E**** 文档编号:89402256 上传时间:2019-05-24 格式:PPT 页数:27 大小:394KB
返回 下载 相关 举报
《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构_第1页
第1页 / 共27页
《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构_第2页
第2页 / 共27页
《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构_第3页
第3页 / 共27页
《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构_第4页
第4页 / 共27页
《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构》由会员分享,可在线阅读,更多相关《《Visual Basic语言程序设计教程》-程胜利-电子教案 第7章 选择结构(27页珍藏版)》请在金锄头文库上搜索。

1、1,第7章 选择结构,本章的学习要点 If语句的分类 IfThen结构 IfThenElse结构 多分支If结构:IfThenElseIf和If嵌套语句 Select Case结构,2,7.1 If语句,If语句可以分为如下几类:,3,If语句 IfThen结构 语法格式: 功能:如果表达式的值为真(True),执行Then后的语句块内容;否则不执行语句块内容。 说明: 表达式可以是:关系表达式、逻辑表达式、算术表达式。若为算术表达式,值为0则为假,非0则为真。 如果是单行If格式,所有的代码必须写在同一行中,绝对不能换行。如果是块If语句,各语句块必须独占一行,End If不能省略。 语句块

2、若是一条语句,可用单行If结构;为多条语句,则采用块If结构较好。当然也可以采用单行If格式,这时各语句必须在同一行中且用“:“分隔,且不能出现End If。,If 表达式 Then 语句块 End If,If 表达式 Then 语句块,7.1 If语句,4,例7.1 输入两个数,输出较大的数。,分析: 本题由用户输入两个数,经计算机判断后将较大数输出,即有两个输入量和一个输出量。所以需要两个文本框接受用户输入,可以采用标签框来实现数据的输出。 界面设计:,7.1 If语句,5,例7.1 输入两个数,输出较大的数。,属性设置:,7.1 If语句,6,例7.1 输入两个数,输出较大的数。,编写代

3、码: Private Sub Command1_Click() Dim max As Single Dim min As Single max = Val(Text1.Text) min = Val(Text2.Text) If max min Then max = min End If Label3.Caption = “较大值为“ & max End Sub,注意: 块if语句中的end if能否省略?,Dim max As Single Dim min As Single max = Val(Text1.Text) min = Val(Text2.Text) If max min The

4、n max = min Label3.Caption = “较大值为“ & max,注意: 块if语句中的end if能否省略? 将块if语句改为单行if语句怎么改?,If max min Then max = min,7.1 If语句,7,If语句 IfThenElse结构 语法格式: 功能:该结构用于解决“二选一“的问题。当表达式的值为真,执行语句块1的语句内容;否则执行语句块2的语句内容 。 说明: 表达式最终的值必须为逻辑值,即取值为真或假。 若语句块1和语句块2都是单条语句,可采用单行If格式,否则采用块If语句。 跟If Then 不同,该结构中即使表达式值为假,也有语句块2的内容

5、可被执行 。,If 表达式 Then 语句块1 Else 语句块2 End If,If 表达式 Then 语句块1 Else 语句块2,7.1 If语句,8,例7.2 编写一个程序,实现当用户输入的用户名和口令都正确时显示“欢迎登录“的消息对话框,当用户名或口令有错误时显示消息对话框报告错误。,分析: 本题需要两个文本框分别保存用户输入的用户名和口令,一个“登录“按钮,一个“退出“按钮。当输入的用户名和口令与正确的相符时显示“合法用户“,当不相符时显示“非法用户“,所以应当采用IfThenElse结构来实现。 界面设计:,7.1 If语句,9,例7.2 编写一个程序,实现当用户输入的用户名和口

6、令都正确时显示“欢迎登录“的消息对话框,当用户名或口令有错误时显示消息对话框报告错误。,编写代码: Private Sub Command1_Click() Dim user As String Dim psw As String user = Text1.Text psw = Text2.Text End Sub,If user =“SYL“ And psw = “123456“ Then MsgBox (“欢迎您登录本系统!“) Else MsgBox (“您的用户名或口令有误,请重新输入!“) End If,7.1 If语句,10,If语句 IIf函数 语法格式: 功能:当条件为真(Tr

7、ue),该函数返回表达式1的值,否则返回表达式2的值。其中,函数的三个参数都是必须的,不可省略 。 说明: 在使用IIf函数时,必须将其返回值赋值给一个变量,不可以单独调用。如上面的代码不可以写成:IIf(x = 1, “Yes”, “No”),需为:a = IIf(x = 1, “Yes”, “No”),或作为其他函数的参数。 在使用IIf函数时,第2和第3个参数必须只能为一条语句,而且必须是有返回值的,这是IIf函数跟IfThenElse结构的不同之处。,IIf(条件, 表达式1, 表达式2),If user =“SYL“ And psw = “123456“ Then MsgBox (“

8、正确!“) Else MsgBox (“错误!“) End If,MsgBox IIf(user = “SYL“ And psw = “123456“, “正确!“, “错误!“),IIf(user = “SYL“ And psw = “123456“, MsgBox(“正确!“),MsgBox(“错误!“),7.1 If语句,11,7.1 If语句,If语句 多分支If结构 语法格式: 执行过程:如表达式1为真则执行语句块1;否则测试表达式2的值,为真则执行语句块2;依次类推至找到一个值为真的表达式则执行相应的语句块;若都不为真时,执行Else后语句块内容 。 说明: 表达式最终的值必须为逻

9、辑型,即取值是真或者是假; 如果要产生n个分支,则需要n-1个测试表达式; 此结构不能转换成单行If格式 。,If 表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 ElseIf 表达式3 Then 语句块3 Else 语句块n End If,12,例7.4 编写一个程序,根据用户输入的某个学生的成绩评出优、良好、中等、及格和不及个五个等级。判断标准如下:,7.1 If语句,13,例7.4 编写一个程序,根据用户输入的某个学生的成绩评出优、良好、中等、及格和不及个五个等级。,分析: 本题要解决的问题是根据输入学生的成绩来判断该学生的成绩等级。有一个输入量(学生的成绩)和

10、一个输出量(判断结果),所以用一个文本框来接受用户输入,一个文本框来进行输出。再添加一个“判断“按钮,和一个“退出“按钮。 界面设计:,7.1 If语句,14,编写代码: Private Sub Command1_Click() Dim score As Single Dim s As String score = Val(Text1.Text) End Sub,T,If score 60 Then s = “不及格“ ElseIf score 70 Then s = “及格“ ElseIf score 80 Then s = “中等“ ElseIf score 90 Then s = “良好

11、“ Else s = “优“ End If Text2.Text = s,7.1 If语句,15,例7.5:学校对学习成绩优良的同学给予奖励,只要满足以下条件之一就可以获得奖励:,所考语文、数学和英语总分在285以上; 每门课的成绩都在90分以上; 语文和数学的成绩为100分,英语在80分以上。,界面设计:,7.1 If语句,16,例7.5:学校对学习成绩优良的同学给予奖励。,编写代码: Private Sub Command1_Click() Dim a As Single, b As Single, c As Single a = Val(Text1.Text):b = Val(Text2

12、.Text):c = Val(Text3.Text) If a + b + c = 285 Then Label4.Caption = “可以获奖!“ ElseIf a = 90 And b = 90 And c = 90 Then Label4.Caption = “可以获奖!“ ElseIf a = 100 And b = 100 And c = 80 Then Label4.Caption = “可以获奖!“ Else Label4.Caption = “不可获奖!“ End If End Sub,T,能改成下面的代码吗? If a + b + c = 285 or a = 90 And

13、 b = 90 And c = 90 or _ a = 100 And b = 100 And c = 80 Then Label4.Caption = “不可获奖!“ End If,7.1 If语句,17,7.1 If语句,If语句 If嵌套:所谓If嵌套,是指在If的Then或者Else语句块中还可以嵌套If结构,以达到多分支的目的。 语法格式:,If 表达式1 Then 语句块1 If 表达式2 Then 语句块2 Else 语句块3 End If Else 语句块4 if 表达式3 Then 语句块5 Else 语句块6 End If End If,18,例7.7:编写一个程序,让用户

14、输入三个数判并断该三个数能否组成一个直角三角形。,分析: 本题根据用户输入的三个数,判断它们能否组成一个直角三角形。程序中有三个输入量(即输入的三个数)和一个输出量(即能否组成一个直角三角形)。故可以用三个文本框来接受用户输入的三个数,一个标签框来显示判断结果。 界面设计:,7.1 If语句,19,例7.7:编写一个程序,让用户输入三个数判并断该三个数能否组成一个直角三角形。,编写代码: Private Sub Command1_Click() Dim a, b, c As Single a = Val(Text1.Text): b = Val(Text2.Text): c = Val(Tex

15、t3.Text) End Sub,T,If a + b c And a + c b And b + c a Then If a 2 = b 2 + c 2 Or b 2 = a 2 + c 2 Or c 2 = a 2 + b 2 Then Label4. Caption= “可以构造一个直角三角形 “ Else Label4. Caption= “可以构造一个非直角三角形“ End If Else Label4. Caption= “不可以构造一个三角形 “ End If,7.1 If语句,20,7. Select Case语句,Select Case语句 Select Case语句同样可以

16、解决多分支问题,但与If嵌套结构不同在于这种结构中只有一个用于判断的测试表达式,根据此表达式产生的不同计算结果执行不同分支的语句块内容.其语法格式为: 功能:在同一个测试条件上可以有多个分支并列,根据测试表达式的不同计算结果来执行不同的分支。当测试值处于表达式列表1范围时,则执行语句块1并退出Select Case语句;当其值处于表达式列表2范围时,则执行语句块2并退出Select Case语句;。若其值跟所有的表达式列表表示的值都不匹配时则执行Case Else对应的语句块n并退出Select Case语句。,Select Case 测试表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n End Select,注意: 测试表达式可以是数学表达式、字符串表达式、逻辑表达式或混合表达式。 Case子句后的表达式列表可是以下几种格式: 表达式1,表达式2,表达式n 表达式1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号