背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-3361.html    注册17xie 一起来写书 实现您的出书梦想!

【实例4.5  求分段函数

程序运行结果如图4-15所示,打开代码编辑窗口,在其中输入如下代码:

4-15  程序运行界面

Private Sub command1_Click()                 '“计算”按钮的事件过程

    Dim x As Double, y As Double

    x = Val(Text1.Text)

    If x > 10 Then                          'x>10

        y = 3 * Cos(x) - x ^ 2 + 9

    ElseIf x > 3 Then                      '3< x10

        y = Sin(x) - 2 * x

    Else                                      'x3

        y = 9

    End If

    Text2.Text = y

End Sub

从本例可以看出,使用ElseIf可以在上面表达式为False进行再次判断。

          

【实例4.6  某商场为了促销,采用购物打折的优惠方法,每位顾客一次购物:

1)在1000元以上,按95折优惠。

2)在2000元以上,按90折优惠。

3)在3000元以上,按85折优惠。

4)在5000元以上,按80折优惠。

编写程序,输入购物金额,计算并输出优惠价。程序界面如图4-16所示。

打开代码编辑窗口,在其中输入如下代码:

Private Sub Command1_Click()

    Dim x As Single, y As Single

    x = Val(Text1.Text)

    If x < 1000 Then

        y = x

    ElseIf x < 2000 Then

        y = 0.95 * x

    ElseIf x < 3000 Then

        y = 0.9 * x

    ElseIf x < 5000 Then

        y = 0.85 * x

    Else

        y = 0.8 * x

    End If

    Label3.Caption = y

End Sub

程序运行后,输入购物总金额,单击【计算】按钮,则显示打折后的价格,如图4-17所示。

2SelectCase语句

If语句一般用于单分支或双分支的情况中,程序在很多情况下会遇到多分支,一种解决方法是采用复合If语句完成,但代码可读性不强;另一种解决方法是采用VB提供的Select Case语句,该语句的功能是:根据【测试表达式】的值,从多个语句块中选择一个符合条件的执行。下面介绍该语句的使用方法。

格式:

Select Case  <测试条件表达式>

    Case 表达式列表1

        <语句组1>

    Case 表达式列表2

        <语句组2>

……

    [Case Else

        <语句组n+1>]

End Select

说明:

1)测试表达式可以是数值或字符串表达式。

2)表达式列表,一般可以是以下几种形式之一:

l          一个常量或常量表达式。

l          多个常量或常量表达式,用逗号隔开,逗号相当于【或】,只要测试表达式等于其中的某个值就是匹配,如:Case  3,5,7,9

l          表达式1 to 表达式2,表示从表达式1到表达式2中所有的值,其中表达式1的值必须小于表达式2的值。如:Case  4 to 7

l          Is关系运算表达式,可以使用的关系运算符为:>>=<<=<>=,如:Case Is<10。不可以使用逻辑运算符表示多个范围,如:Case Is>0 And Is<10 是错误的。

l          前面四种情况的组合,如:Case Is>10,2,4,6,Is <0

3)执行时,先求测试表达式的值,然后逐个判断与哪个Case子句的【表达式列表】匹配,找到则执行该Case后的语句块,找不到则执行Case Else后的语句块,然后结束Select Case语句,程序转到End Select语句的后一条继续执行。若有多个匹配的表达式,则只执行第一个与之匹配的。

 

【实例4.7  简单运算器。

本题中运算符是由下拉列表框提供给用户选择,共有+、-、×、÷四个选项。参考界面如图4-18所示,各控件的属性设置如表4-1所示。

4-18  程序设计界面

 

 

                           

4-1  控件属性设置

对象

属性

属性值

文本框1

(名称)

txtX

文本框2

(名称)

txtY

文本框3

(名称)

txtresult

组合框

(名称)

Cmbop

List

+、-、×、÷

命令按钮

(名称)

cmdresult

Caption

=

打开代码编辑器,输入命令按钮cmdresultClick事件过程:

Private Sub cmdresult_Click()

    Select Case Cmbop.Text

        Case  ""

            txtresult = Val(txtX) + Val(txtY)

        Case  ""

            txtresult = Val(txtX) - Val(txtY)

        Case  "×"

            txtresult = Val(txtX) * Val(txtY)

        Case  "÷"

            If Val(txtY) <> 0 Then

                txtresult = Val(txtX) / Val(txtY)

            Else                            '排除除数为0的情况

                MsgBox "0"

                txtY = ""

                txtY.SetFocus

            End If

    End Select

End Sub

【实例4.8  判定学生的成绩或等级。

本题实现的功能有已知成绩求等级和已知等级求成绩,成绩和等级的对应关系如表4-2所示。

4-2  成绩等级对应表

成绩

等级

>=90

A

8089

B

7079

C

6069

D

<60

E

打开代码编辑窗口,在其中输入如下代码:

Private Sub score2grade_Click()            '“成绩—>等级”按钮的事件过程

    Dim score As Integer

    score = Val(txtscore)

    Select Case  score \ 10

        Case 9

            txtgrade = "A"

        Case 8

            txtgrade = "B"

        Case 7

            txtgrade = "C"

        Case 6

            txtgrade = "D"

        Case 5, 4, 3, 2, 1, 0

            txtgrade = "E"

        Case Else

            txtgrade = "Score Error!"

    End Select

End Sub

Private Sub grade2score_Click()            '“等级—>成绩”按钮的事件过程

    Dim grade As String

    grade = Left(Trim(txtgrade), 1)

    Select Case  grade

        Case "A"

            txtscore = ">=90"

        Case "B"

            txtscore = "80~89"

        Case "C"

            txtscore = "70~79"

        Case "D"

            txtscore = "60~69"

        Case "E"

            txtscore = "<60"

        Case Else

            txtscore = "Grade Error!"

    End Select

End Sub

 

4.2.4  IIf函数

VB中,还提供了一个IIf函数来执行简单的条件判断,格式如下:

IIf(条件表达式,条件为True时的值,条件为False 时的值)

说明:

1)条件表达式可以是关系表达式、逻辑表达式或数值表达式。如果用数值表达式做条件,则非0为真,0为假。

2)三个表达式都不能省略。

 

【实例4.9  使用IIf函数判断输入数字的奇偶性。

代码如下:

Private Sub Command1_Click()

    Dim m As Integer, n As Integer

    m = Val(Text1.Text)

    n= IIf(m Mod 2 =0 , "偶数" , "奇数")

    Label1.Caption=n

End Sub

4.3  循环结构

在解决实际问题时,经常要重复进行某些相同的操作,这时就要用到循环结构。程序中的循环结构是指:在程序的某处开始,有规律地反复执行某一语句组(或程序段)。被重复执行的语句组称为循环体,循环体的执行次数由循环条件而定。VB中常用的循环语句主要有ForNextWhileWendDoLoop三种,本节将做详细介绍。

4.3.1  ForNext循环结构

如果事先已知循环次数,则可使用ForNext循环结构语句,又称这种循环为计数循环。它的格式是:


字数:8790    最后更新:1年以前 [09-06 01:18]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第四章  [后一页]:第四章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号