编程实验
实验 选择结构程序设计
一、实验目的
(1)掌握逻辑表达式的正确书写形式。
(2)学会单分支和双分支结构程序的使用。
(3)学会多分支条件语句的使用。
(4)掌握情况语句的使用,弄清楚情况语句和多分支条件语句的区别。
二、相关知识
选择结构也叫做条件分支结构,即根据条件选择要执行的分支。Visual Basic中常用的条件执行语句有:If...Then...Else...Endlf语句;Select Case...语句。
1.If...Then...Else...Endlf语句
语句中的判断条件是数值表达式或字符串表达式,其运算结果为True或False。
可以使用单行形式来做短小简单的程序。在单行形式中,按照If...Then判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开,如:
If A>10 Then A=A+1:B二B+A:C=C+B
但使用块形式的情况更多,块形式具有更强的结构化与适应性,并且通常比较容易阅读、维护及调试。Else和Elself子句都是可选项。在If块中,可以放置任意多个Elself子句,但是都必须在Else子句之前。If块也可以嵌套。当程序运行到一个If块时,条件表达式将被测试,如果结果为True,则在Then之后的语句会被执行。反之,则每个ElseIf部分的条件表达式会依次计算并加以测试。如果找到某个为Tme的条件时,则其紧接在相关的Then之后的语句会被执行。如果没有一个ElseIf条件表达式为True(或是根本就没有Elself子句),则程序会执行Else部分的语句。而在执行完Then或Else之后的语句后,会从End If之后的语句继续执行。
2.Select Case...End Select语句
Select Case...End Select语句是多分支语句,其中的判断条件是任何数值表达式或字符串表达式。根据表达式的值,来决定执行几组语句中的其中之一。判断条件有以下几种形式:
● 一个或多个表达式,表达式之间用“,”隔开。
● 为某个数值范围,格式是:表达式1 To 表达式2
● 为某个关系表达式,格式是:IS<关系符><表达式>
图4-1例1运行结果
三,实验举例
(实例1) 输入一个数,判断这个数的奇偶性。
Private Sub command1_click()
Dim a As Integer
A = InputBox(”输入一个数“)
If a mod 2 = 1 Then
MsgBox a & ”是奇数”
Else
MsgBox a & ”是偶数”
End lf
End Sub
程序运行时,单击Commandl按钮,在弹出的对话框中输入66,单击“确定”按钮,消息框提示66是偶数,如图4-1所示。
(实例2) 判断你输入的字符的种类。
若是数字,则提示为数字;若是小写字母,则提示此字母为小写字母,并将该字母转换为大写字母;若为大写字母,则提示此字母为大写字母,并将该字母转换为小写字母;否则输出其他字符。
Private Sub Form_click()
Dim a As String*1
Dim b As String*1
A = InputBox(”请输入一个字符”)
If a <= ”9” And a >= ”0“ Then
Print a; ”是一个数字”
Elseif a >= ”A” And a <= ”Z” Then
B = Chr(Asc(a) +32) ‘也可以写为b=LCase(a)
Print a; “是一个大写字母,将”; a; ”变为小写的字母为”;b
Elself a >= ”a” And a <= ”Z” Then
B = UCase(a) ‘也可以写为b二Chr(Asc(a) - 32)
Print a; ”是一个小写字母,将“;a; ”变为大写的字母为”;b
ElSe
Print a; ”是其他字符”
End if
End Sub
分析:通过上面的示例我们知道函数LCase()和UCase(),它们的作用是将字符串中的大写字符变为小写字符或将小写字符变为大写字符;函数Chr()和Asc()函数,它们是将ASCⅡ码值转换为对应的字符和求字符串中首字符的ASCⅡ码值函数。另外我们也知道了a的ASCⅡ码值比A的ASCⅡ码值大32。观察运行结果。
(实例3)有A,B,C三个数,要求按由大到小的顺序把它们打印出来。
分析:把一组任意数按大小进行排列是日常工作中经常遇到的问题。当碰到的是少量的数据要排序时,可以按最基本的方法考虑,将它们一一进行比较。此时,要用到If结构的嵌套形式,嵌套必须完全嵌套,也就是内层条件语句必须完全包含在外层条件语句之中。格式为:
If<表达式> Then
If<表达式>Then
<语句块>
Else
<语句块>
End If
Else
If<表达式> Then
<语句块>
Else
<语句块>
End If
End If
程序如下:
Private Sub Form_click()
Dim a As single, b As Single, c As Single
a = InputBox(”输入A的值:”,”输入A”)
b = InputBox(”输入B的值:”,”输入B”)
c = InputBox(”输入C的值:”,”输入C”)
If a > b Then
If b > C Then
Print a, b,C
Else
if a > C Then
Print a,c,b
Else
Print c,a,b
End if
End if
Else
if a > C Then
Print b,a,c
Else
if b>C Then
Print b,c,a
Else
Print c,b,a
End if
End if
End if
End Sub
全部0条评论
快来发表一下你的评论吧 !