当前位置:首页 >> 其它课程 >>

vb程序选择结构


问题:计算所得税:输入工资。如果工资少于 2000,免收所得税。如果工资≥2000,所得税 为 5%。单击窗体,在窗体上显示工资及所得税的结果。 程序结构:输入、处理、输出。 程序框架: Private Sub Form_Click() 输入工资 如果 工资>=2000 那么 所得税 = 工资 * 0.05 否则 所得税 = 0 输出工资、所得税 End Sub 分析:设立

变量 gz 代表工资,sj 代表所得税; 输入工资用 InputBox 函数,并存入变量 gz; 输出工资、所得税用 Print 方法。 程序为: Private Sub Form_Click() Gz=InpueBox("请输入工资", "输入工资") 如果 gz>=2000 那么

sj = gz * 0.05 否则 sj = 0 ? "工资";gz;"的所得税为";sj End Sub “如果”“那么”“否则”如何实现呢? 、 、 用程序的控制结构实现。

Vb 程序设计选择结构 实际上, “如果”“否则”是程序的一种控制结构。它的功能是根据条件“工资>=2000” 、 是否成立,决定程序下一步的执行方向是“所得税=工资*0.05”还是“所得税=0” 。 这种根据条件的不同结果,选择不同的分支的程序结构,称为“选择结构”或“分支结 构” 。它属于程序的控制结构。 结构化程序设计的基本控制结构有3种:

(1) 顺序结构:单线条、无分支、不重复、每个语句均有机会执行,且都仅执行一次。 这种结构功能最简单。 (2) 选择结构:即分支结构。 (3) 循环结构:重复执行某块程序若干次。 7.1 选择结构 在 VB 中,选择结构用 If 语句实现,故选择结构也称 If 结构。它有2种格式:单行结 构、块结构。 一、 单行 If 语句

格式 1: If 条件 Then 语句 1 Else 语句 2 功能:如果“条件”为 True,执行语句 1,否则执行语句 2。 应用: (计算所得税) If gz>=2000 Then sj=gz*0.05 Else sj=0 格式 2: If 条件 Then 语句 1 功能:如果“条件”为 True,执行语句 1,否则什么也不执行,直接执行下一个语句。 应用: (计算所得税) If gz>=2000 Then sj=gz*0.05 “条件” :可以是关系表达式(单条件) ,也可以是逻辑表达式(复合条件) 。 应用:工资在 2000—3000 之间所得税为 5% If gz>=2000 And gz<3000 Then sj=gz*0.05 “语句” :可以是单个语句,也可以是多个语句(复合条件,用冒号分隔) 。 应用:工资超过 2000 所得税为 5%,显示姓名、所得税,否则显示姓名、说明“不用纳 税” 。 If gz>=2000 Then sj=gz*0.05 : ? 姓名,sj Else ? 姓名,"不用纳税" 缺点:语句太长,结构不分明,容易出错。 改进:用 If 语句的块结构。 二、 块结构 If 语句

1.最简单的块结构是: If 条件 1 Then 语句块1 End If 这种结构是单分支结构。 应用:单行结构的 If gz>=2000 Then sj=gz*0.05 改为块结构: If gz>=2000 Then

sj=gz*0.05 End If 与单行 If 语句相比, 最后多一行 End If 语句作为 If 结构的结束, 但程序结构非常分明、 容易阅读。缺点是程序行数增加,显得冗长。 2.最常用的结构是: If 条件 1 Then 语句块1 Else 语句块 2 End If 这种结构是双分支结构。 应用:工资超过 2000 所得税为 5%,显示姓名、所得税,否则显示姓名、说明“不用纳 税” 。 If gz>=2000 Then sj=gz*0.05 : ? 姓名,sj Else ? 姓名,"不用纳税" 改为用块 If 结构,程序为: If gz>=2000 Then sj=gz*0.05 ? 姓名;sj Else ? 姓名;"不用纳税" End If 这种双分支结构有时可以用 IIF 函数替代。 函数格式: 变量=IIF(条件,True 部分,False 部分) 例如:工资超过 2000 所得税为 5%,否则为0。 用 IF 结构写为: If gz>=2000 Then Sj=gz*0.05 Else Sj=0 End If 改用 IIF 函数则写成: sj=IIF(gz>=2000, gz*0.05, 0) 对于:工资超过 2000 所得税为 5%,显示姓名、所得税,否则显示姓名、说明“不

用纳税” 。 这种情况能不能用 IIF 函数? 什么时候用单行结构?什么时候用块结构? 当语句块只有一个语句时,一般用单行结构; 当语句块不止一个语句时,一般用块结构; 当结构比较复杂时,一般也用块结构。 3.比较复杂的结构是: If 条件 1 Then 语句块1 [ ElseIf 条件2 Then 语句块2 ] [ ElseIf 语句3 Then 语句块3 ] ………… [ Else 语句块 n ] End If 功能:如果“条件 1”为 True,执行语句块 1;否则如果“条件 2”为 True,执行语句 块 2;否则如果“条件 3”为 True,执行语句块 3……否则执行语句块 n。 这种结构实际上是多分支结构。 例 1:输入正数 x、y,按不同情况计算输出 s: x2-y2 当 x,y 均为正数 2 2 y -x 当 x,y 均为负数 2 2 x +y 当 x,y 为一正一负 0 当 x,y 均为 0 s=

程序框架为: 声明变量 x,y 输入 x,y 如果 x,y 均为正数 那么

s= x2-y2 否则如果 x,y 均为负数 那么

s= y2-x2 否则如果 x,y 为一正一负 那么

s= x2+y2 否则 s=0 结束 If 输出 s 的结果

用窗体单击事件过程 Form_Click 作为驱动程序。 程序为: Private Sub Form_Click() Dim x As Integer, y As Integer Dim s As Integer x = InputBox("请输入整数 x:", "输入变量 x,y") y = InputBox("请输入整数 y:", "输入变量 x,y") If x > 0 And y > 0 Then s=x*x-y*y ElseIf x < 0 And y < 0 Then s=y*y-x*x ElseIf x * y < 0 Then s=x*x+y*y Else s=0 End If Print "s="; s End Sub 注意:不管是哪种块结构,Then 后的同一行内不能有语句,如果有,则变成单行结 构,而且会导致块结构的混乱。 例如:上面的程序的 If 结构写成: If x > 0 And y > 0 Then s = x * x - y * y ElseIf x < 0 And y < 0 Then s = y * y - x * x ElseIf x * y < 0 Then Else End If s=0 s=x*x+y*y

这样会导致什么后果呢?(演示) 例 2:在窗体上显示清单,输入选择不同选项,执行不同功能。 (程序 cx1.exe)

设置好窗体界面后,就可以编写窗体程序。 程序框架为: 显示窗体选项清单 输入 x 如果 x=1 Then

隐藏文本框 否则如果 x=2 Then

显示文本框 否则如果 x=3 Then

清除窗体 否则如果 x=4 Then

文本框显示“再见” 否则如果 x=5 Then

结束程序 结束 If 程序为: Private Sub Form_click() Print: Print Print " Print " Print " Print " Print " If 1.隐藏文本框" 2.显示文本框" 3.清除窗体" 4.文本框显示再见" 5.退出程序" x = 1 Then Text1.Visible = False

x = InputBox("请输入(1--5)", "选择")

ElseIf x = 2 Then Text1.Visible = True ElseIf x = 3 Then Cls ElseIf x = 4 Then Text1.Text = "再见" ElseIf x = 5 Then End End If End Sub 程序评价:If 结构冗长重复,每一个 If 都是一样的写法,只是每个 x 的取值分别为 1,2,3,4,5。 能否简化?用什么结构替代? 可以用专门的多分支结构替代。

7.2 格式:

多分支结构(Case 结构)

Select Case

情况表达式

Case 表达式值1 语句块1 Case 表达式值2 语句块2 ………… [Case Else 语句块 n ] End Select 注意:Case Else 必须放在最后,其它的 Case 顺序可以随意调动。 功能: 先计算情况表达式的值, 与下面的每个 Case 后的值进行比较, 如果有相等的, 则执行这个 Case 下面的语句块,执行完后退出整个 Case 结构,即使后面还有相等的,也不 再执行。如果没有相等的,则执行 Case Else 下面的语句块;如果没有 Case Else,则什么也 不做,直接退出整个 Case 结构。 流程图(执行的逻辑关系) :

用 Case 结构改造上面的例2程序为: Private Sub Form_click() Print: Print Print " Print " Print " Print " Print " 1.隐藏文本框" 2.显示文本框" 3.清除窗体" 4.文本框显示再见" 5.退出程序"

x = InputBox("请输入(1--5)", "选择") Select Case x Case 1 Text1.Visible = False Case 2 Text1.Visible = True Case 3 Cls Case 4 Text1.Text = "再见" Case 5 End End Select End Sub 程序评价:比多分支 If 结构简单、清晰、整齐。 使用说明: (1) “情况表达式”可以是一个变量,如 x;也可以是一个计算式,如 (x+y)*(x-y)。 (2) 每个 Case 后的取值一般是整数、 字母, 不用实数。 有时可以合并、 或写成范围形式: Case 2,4,6,8 Case 1 to 5 (3) Case 后可不可用 >2 或 <2 的形式呢? 可以,但要在前面加“Is” : Case Is>10

Case Is<20 Case Is>10, Is<20 ’>10 或<20 但 Case Is>10 OR Is<20 是不合法的! Case Is>10 And Is<20 也不合法! 即用 Is 时只能用单个条件,不能是复合条件。 但可以用混合形式: Case Is>10,2,4,6,Is<20 ’值>10 或等于 2,4,6,或<20 (4) 每个 Case 后的值的数据类型必须与情况表达式的数据类型一致。不能一个是整数, 另一个是字母。 (5) 问题:阅读以下程序: x = InputBox("请输入(1--4)", "选择") Select Case x Case Is>=1,-1 y = 10 Case Is>=2,-2 y = 20 Case Is>=3,-3 y = 30 Case Is>=4,-4 y = 40 Case Else y = 50 End Select 1) 程序运行时 x 输入 4,请问 y 的值应为: A.10 B.20 C.30 D.40 2) 程序运行时 x 输入 0,请问 y 的值应为: A.20 B.30 C.40 D.50 结论:当有多个 Case 的值与情况表达式的结果相等时,只执行第一个,其它的不再执 行。当前面的所有情况都不满足时,执行最后的 Case Else 情况。 3) 如果去掉程序的 Case Else 及其下一行,运行时 x 输入 0,请问 y 的值应为: A.0 B.10 C.50 D.没有结果 例 1:输入正数 x、y,按不同情况计算输出 s: x2-y2 当 x,y 均为正数 2 2 y -x 当 x,y 均为负数 2 2 x +y 当 x,y 为一正一负 0 当 x,y 均为 0 s=

这个程序前面用的是多分支 If 结构。

问题:能不能改用 Case 结构?


相关文章:
VB选择结构程序设计教学案例
VB 选择结构程序设计教学案例 摘要: "选择结构"是高等教育出版社出版的中等职业学校计算机应用与软件技术专业 教学用书,程序控制结构中的选择结构是第四章第三节的...
程序的选择结构
程序选择结构——多重选择语句【导读】 在 VB 语言中,选择结构可以通过 IF 语句和 Select Case 语句这两个条件语句来实现,运用条件语 句的关键是条件的判断,...
vb程序选择结构
、、 用程序的控制结构实现。 Vb 程序设计选择结构 实际上, “如果”“否则”是程序的一种控制结构。它的功能是根据条件“工资>=2000” 、 是否成立,决定程序...
vb选择结构教案
vb选择结构教案_计算机软件及应用_IT/计算机_专业资料。卓资县职业中学实训学案班级___姓名___ 科目: VB 程序设计 课 主备: 闫森 审核: 日期:本节课只完成任...
VB6.0选择结构
VB6.0选择结构_计算机软件及应用_IT/计算机_专业资料。VB6.0选择结构选择性结构: 选择性结构是通过判断给定的条件, 根据判断结果执行不同任务的一种程序结构。 在实...
vb 选择结构程序设计
vb选择结构练习题 5页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 vb 选择结构程序设计 隐藏>> 实验五 选择结...
VB 选择结构
VB 选择结构_理学_高等教育_教育专区。VB选修课课件第四章 选择结构程序设计 程序设计基本过程 ①.变量定义 ②.变量赋值(直接输入、文本框输入、InputBox 函数) ...
实验四、VB 选择结构程序设计
实验四、VB 选择结构程序设计_计算机软件及应用_IT/计算机_专业资料。VB,实验,教材实验四、 选择结构程序设计 实验目的: 1、了解选择结构的结构特点 2、掌握 IF ...
VB选择结构
vb 选择结构程序设计 69页 1财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 VB选择结构 不错的选择结构单练不错...
VB选择结构程序设计教学案例
VB 选择结构程序设计》教学案例 选择结构程序设计》教学案例永春华侨中学信息技术组 【案例背景 案例背景】 案例背景 高中信息技术新课程的实施,其课程目标定位于...
更多相关标签: