第三章 程序流程控制
一、教学内容
在Visual Basic6.0中,其流程控制语句分为条件测试语句和循环语句。本章将重点介绍这两种流程控制语句的用法与功能
二、目的要求
1.熟练掌握行if语句、块if结构、Select Case情况选择结构有使用,掌握选择的嵌套结构;
2.熟练掌握实现循环结构的For/Next循环结构及Exit For语句、Do/Loop循环结构的使用,掌握多重循环。
三、教学重点与难点
教学重点:选择结构及循环结构的实现及其应用
教学难点:选择的嵌套及多重循环结构
四、教学方法
多媒体教学为主。适当提问,加深学生对概念的理解。
第一讲 (2学时)
一、教学内容
3种条件测试语句:由If构成的两种类型测试语句和由Select Case构成的测试语句
二、目的要求
1.熟悉If…Then结构,If…Then…Else结构,Select…Case 结构
2.了解多重If语句,If语句的嵌套
三、教学重点与难点
教学重点:If…Then结构,If…Then…Else结构。
教学难点: 多重If语句,If语句的嵌套
四、教学方法
多媒体教学。
五、教学过程
3.1.1 If测试语句
1. If…Then结构
单行语句格式:
If 条件表达式 Then 语句
多行语句格式:
If 条件表达式 Then
语句块
End If
2. If…Then…Else结构
语句格式:
If 条件表达式 Then
语句块1
Else
语句块2
End If
3. 多重If语句
语句格式:
If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
ElseIf 条件表达式3 Then
语句块3
……
ElseIf 条件表达式n Then
语句块n
Else
语句块
End If
例:以下示例完成对所输入的整数进行判断,若输入数为正数,则显示“大于零”,若输入数为负数,则显示“小于零”,否则显示“等于零”。
在Command1按钮的Click事件中输入如下代码:
Private Sub Command1_Click()
If Val(Text1.Text) < 0 Then
Text2.Text = (小于零(
ElseIf Val(Text1.Text) > 0 Then
Text2.Text = (大于零(
Else
Text2.Text = (等于零(
End If
End Sub
3.1.2 Select Case测试语句
1. Select Case语句的一般形式
语句格式:
Select Case 测试表达式
Case 表达式列表1
语句块1
Case 表达式列表2
语句块2
……
Case 表达式列表n
语句块n
Case Else
语句块
End Select
【例3.1】 将输入文本框中的所有小写字母转换成大写字母,并将一些特殊符号变成等价的字符串,如DLR表示$、AT表示@、0/0表示%、BPT表示#、AND表示&等。可以在KeyPress事件中修改文本框控件的缺省操作,使它能在用户输入这些字符时进行相应修改。
Private Sub Text1_KeyPress (KeyAscii As Integer)
Dim spesymbols As String
Dim ch As String (1
Spesymbols=($#%&@(
ch= Chr(KeyAscii)
If InStr(Spesymbols,ch) Then
KeyAscii=0
Else
KeyAscii = Asc(Ucase(ch))
Exit Sub
End If
Select Case ch
Case ($(: Text1.SelText=(DLR(
Case (#(: Text1.SelText=(BPT(
Case (%(: Text1.SelText=(0/0(
Case (&(: Text1.SelText=(AND(
Case (@(: Text1.SelText=(AT(
End Select
End Sub
六、小结
在这一讲里,我们经常需要对给定的条件进行判断或比较,然后根据判断的结果来决定下一步将采取的操作,这时便可以使用条件测试语句来实现。它有三种结构。单分支,双分支和多重分支,我们都要学会,并运用。
七、作业
习题3.1
第二讲 (2学时)
一、教学内容
For…Next、Do…Loop、While…Wend三种循环的用法
二、目的要求
1.熟悉While…Wend循环的用法
2.掌握For…Next、Do…Loop循环的用法
三、教学重点与难点
教学重点:For…Next、Do…Loop循环的用法
教学难点: 循环的嵌套
四、教学方法
多媒体教学。
五、教学过程
3.2.1 For...Next循环结构
语句格式:
For counter = start To end [ Step increment]
语句块1
[Exit For]
语句块2
Next [counter]
说明:在使用这种循环结构时,要求知道执行循环的次数。
【例3.2】 求sum=1+2+3+…+100。用For…Next循环结构实现
程序代码如下:
Private Sub Command1_Click()
Dim sum As Integer, I As Integer
sum=0
For I=1 To 100
sum=sum+I
Next I
Label2.Caption=Str(sum)
End Sub
3.2.2 Do…Loop循环结构
语句格式1:
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
语句格式2:
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
说明:在循环次数不能确定的情况下进行的,那么这时便需要用到循环控制结构Do…Loop
【例3.5】用Do…Loop循环结构实现求和sum=1+2+3+…+100。
编写程序代码。
解法一:采用当型循环Do While…Loop
Private Sub Command1_Click()
Dim i As Integer,sum As Integer
i=1 '计数器初值置为1
sum=0 '累加器初值置为0
Do While i<=100 '当型循环
sum=sum+i
i=i+1 '每次循环变量加1
Loop
Label2.Caption=Str(sum)
End Sub
解法二:采用直到型循环Do Until…Loop
Private Sub Command1_Click()
Dim i As Integer,sum As Integer
i=1 '计数器初值置为1
sum=0 '累加器初值置为0
Do Until i>100
sum=sum+i
i=i+1
Loop
Label2.Caption=Str(sum)
End Sub
3.2.3 While…Wend循环控制结构
此语句是为了保持与低版本Visaul Basic兼容而保留的。在实际应用中,它与Do While…Loop结构非常相似。
六、小结
在这一讲里,我们要掌握For…Next、Do…Loop循环的用法,其中循环的嵌套不容易理解。大家要多自己编些程序来熟悉它
七、作业
习题3.2,3.6