第 五 讲
基本课题:语句及书写格式、顺序结构、分支结构
授课日期 |
2004.9.15 |
2004.9.15 |
授课班级 |
03级计算机5、6班 |
03级计算机7、8班 |
教 学 目 的 与 要 求:
本讲主要介绍代码的书写规则、分支结构设计的有关概念和If语句的两种格式(单行结构和块结构)以及Select Case语句的语法格式,要求同学们理解选择结构设计的使用条件,学会使用If语句和Select Case语句进行编程。
教 学 的 重 点、难 点:
重点:代码书写规则、分支结构的格式
对 教 材 的 处 理 和 意 见:
以教材为主,联系实际情况及时做补充。
2.4 语句与控制结构
2.4.1 语句与书写格式
1. 程序代码中不区分字母的大小写
2. 语句书写自由
同一行中可以书写多条语句,语句间用冒号【:】分开
单行语句可以分行书写,在本行后加续行符【空格和下划线_】
一行允许多达255个字符
3.注释有利于程序的维护和调试
注释用单引号【’】引导或:Rem,可以直接出现在语句后面。
如果程序代码很长的时候,一行一行地注释令人觉得难以忍受。VB本身提供了这个功能,在主菜单“视图”选项的“工具栏”下,选中Edit,VB的界面会出现一排工具按钮,其中的手形图标按钮后的两个按钮用于“设置注释块”和“解除注释块”。
注意:在同一行内,续行符后面不能加注释。
2.4.2 顺序结构
格式:
……
<语句1>
<语句2>
……
运行时,顺序结构中的语句严格按照其位置的先后顺序执行。
例如:
Private Sub Form_Load()
Text1.Text = " "
Text2.Text = " "
Command1.Enabled = False
Command2.Enabled = True
End Sub
2.4.3 分支结构
功能:使程序依照条件而执行不同的代码段。VB支持的分支结构有:
(1)单行If(行分支语句)
(2)IIf函数
(3)块If (块分支语句)
(4)elseif(块分支中的多分支语句)
(5)select case情况语句(多分支结构)
1. If语句
(1)单行的条件语句
功能:单行If语句是最简单的分支语句,整个结构在一行中完成。用来判断某个条件或组合条件是否满足,并决定进行什么样的简单的处理。
格式: If <条件> Then <语句组1> [Else <语句组2>]
说明:
①整个语句结构必须在一行(逻辑行)内写完。
②<条件>可以是关系表达式,也可以是数值表达式或布尔表达式。如果以数值表达式做条件,则非0值为真,0为假。
③语句组1,语句组2可以是一条语句,也可以是多条。多条时用冒号隔开。
④只选择一组语句执行。如果没有Else子句,<语句组1>为必要参数,在<条件>为True时执行。
程序举例:
例1(5-3):输入x,计算y的值。其中
   x, x≥0
y = {
-x,x<0
例2(5-4):已知两个数x和y,比较它们的大小,输出较大数。
(2)使用IIf函数
使用IIf函数可以实现一些比较简单的选择结构。语法结构为:
IIf (<条件表达式>,<真部分>,<假部分>)
说明:
①<条件表达式>可以是关系表达式、布尔表达式、数值表达式。如果用数值表达式作条件,则非0为真,0为假。
②<真部分>是当条件表达式为真时函数返回的值,可以是任何表达式。
③<假部分>是当条件表达式为假时函数返回的值,可以是任何表达式。
④语句y=IIf(<条件表达式>,<真部分>,<假部分>)相当于
If <条件表达式> then <真部分> Else <假部分>
程序举例:
例3(5-5):将例1中命令按钮Command1的单击(Click)事件代码改为IIf格式
(3)块If (块分支语句)
虽然If语句使用方便,可以满足许多选择结构程序设计的需要,但是当Then部分和Else部分包含较多内容时,在一行中就难以容纳所有命令。为此,VB提供了块If语句,将一个选择结构用多个语句行来实现。块If语句又称为多行If语句,其语法结构为:
If <条件> Then
<语句组1>
[Else
<语句组2>]
End If
说明:
①分支结构中的各语句块执行后,均转到end if的下一条继续执行。
②结构中的end if表示块分支语句的结束,不可省略。
③块结构中then;else后的语句与then;else不在同一行上。

 F
   条件表达式
T

程序举例:
例4(5-6):将例1中命令按钮Command1的单击(Click)事件代码改为块If语句
例5(5-7):将例2中命令按钮Command1的单击(Click)事件代码改为块If语句
(4)If语句的嵌套
①If语句的嵌套
If语句的嵌套是指If或Else后面的语句块中又包含If语句。语句形式如下:
If <条件1> then
If <条件2> then
……
End If
……
End If
程序举例:
例6(5-8):键盘输入3个不同的数,将它们从大到小排序。
分析:对数逐个进行比较,如果后面的数大于前面的数,则交换。
例7(5-9):某百货公司为了促销,采用购物打折扣的优惠办法,每位顾客一次购物:
(1)在1000元以上2000元以下者,按九五折优惠;
(2)在2000元以上3000元以下者,按九折优惠;
(3)在3000元以上5000元以下者,按八五折优惠;
(4)在5000元以上者,按八折优惠。
编写程序,输入购物款数,计算并输出优惠价。
②If语句的嵌套格式ElseIf
如果出现多层If语句嵌套,将使程序冗长,不便阅读。为此VB提供了带ElseIf的块If语句来处理当条件为假时又内嵌块If语句的情形,以使程序简化易写。其语法结构为:
If <条件1> Then
<语句组1>
Elseif <条件2> Then
<语句组2>
……
[Else
<语句组n>]
End If
说明:执行顺序
若表达式1的值为true,则执行语句块1,否则,若逻辑表达式2的值为true,则执行语句块2;依次类推.
注意:
a.分支结构中的每一个语句块执行后,均转去执行end if 的下一条语句。
b.结构中的elseif项可以有多个,但else项只能有一个。
c.结构中end if表示多行结构分支语句的结束,不可省略。
d.注意格式。
程序举例:
例8(5-10):在例7中使用带ElseIf的块If语句来计算出优惠价。
2. 多分支条件选择语句Select Case
功能:当用elseif语句使程序结构显得较为杂乱,而用情况语句select case 将使程序的结构更清晰.
特点:从多个选择结构中,选择第一个条件为真的路线作为执行的路线。语法格式为:
Selelct Case <测试条件>
[Case <表达式列表1>
[<语句组1>]]
[Case <表达式列表2>
[<语句组2>]]
……
[Case Else
[<语句组n+1>]]
End Select
说明:执行顺序
执行了select case语句后,VB首先判断测试表达式与哪个case的表达式值列相匹配,若有,即执行对应case子句后的语句块,然后跳转到end select语句处;若没有,则执行case else中的else语句块,然后跳转到end select语句处。
注意:
(1)测试表达式的类型可以是数值型或字符型。
(2)各值列项可以取下列形式之一,也可以是下列各种形式的列表.
a)<表达式1>[,<表达式2>]….:该种表达方式常用来表达一些具体的取值.例如:case3,7
b)<表达式1>to <表达式2>:表示测试表达式的范围.其中表达式1的值必须小于表达式2的值.:eg.Case 4 to 10case 1 to 4 ,7 to 9,”nuts” to “soup”
c)is <比较运算符><表达式>:表示测试表达式的关系.若关系成立,则执行对应语句块.另外is 关键字与比较运算符结合,也常用来表达一个数值范围.
Eg.Caseis <190可使用的比较运算符有:<,<=,>,>=,=,<>
(3)如果测试表达式与多个case子句中的表达式相匹配,则只执行与之匹配的第一个case语句块.
(4)结构中case else为可选项,若它省略,则当测试表达式与所有表达式值列不匹配时,不执行任何语句块,直接跳到end select.为了处理那些不可预知的测试表达式值建议不要省略case else项.
程序举例:
例9(5-12):在例7中使用Select Case语句来计算优惠价,只需将其中的命令按钮Command1的单击Click事件代码改为:
例10(5-14):编写一个对输入字符进行转换的程序。转换规则为:将其中的大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。要求每输入一个字符,马上就进行判断和转换。
例:轮流显示图像 |