Visual Basic实例精通
上QQ阅读APP看书,第一时间看更新

第3章 VB基本语句

在前两章中分别介绍了VB的语言基础,从中了解了VB的标识符、常量、变量、数据类型以及数组等相关知识,除了这些基本知识之外,VB的基础知识中还包括基本语句,这是也是编程的基础知识,VB基本语句根据VB中的不同结构分为不同的语句,在VB中大致有三种结构:顺序结构,选择结构,循环结构。在顺序结构中,主要包括赋值语句、Print方法、注释语句和End语句;在选择结构中,主要包括If语句、Select Case语句;在循环结构中,主要包括For循环语句、While循环语句和Do循环语句。本章通过实例分别对这些知识进行介绍。

3.1 赋值语句

介绍VB基本语句按照从简入难的顺序进行,首先介绍赋值语句,赋值语句是顺序结构中最简单的语句,主要用于对一个对象的赋值。通过本节的介绍希望读者能够注意赋值过程中容易出现的一些问题。

技术要点

在本实例中主要使用的技术是赋值语句的运用方法,Form的Click事件。主要功能和用法如下:

●赋值语句是最简单的一种语句,但是赋值语句的运用是最常见的。

● Form的Click事件,是单击本窗体时触发的事件。

赋值语句的主要语法如下:

        [Let]VarName=Expression

其中,Let参数是可选项,主要是一种标识作用,标识这是一个赋值语句,一般省略这个参数;VarName参数,表示变量名或某控件的属性名,在本实例中VarName分别表示整型变量i和j,字符串变量Str,布尔变量Bool以及窗体的BackColor属性;Expression参数,表示给变量或属性名赋值的数值,该参数可以是一个数值、表达式,或是一个赋值语句。

注意:赋值语句中的 VarName和 Expression的数据类型要相容,否则编译时会出现错误。

实现代码

        Private Sub Form_Click()          'Form的Click事件
        Dim i,j As Integer                 '定义两个整型变量
        Dim Str As String                  '定义一个字符串变量
        Dim Bool As Boolean                   '定义一个布尔变量
        Form1.BackColor = vbWhite            '给窗体的背景色赋值
        i = 4                                '给整型i变量赋值
        j = i + 5                            '给整型j变量赋值
        Str = "Good"                       '给字符串变量赋值
        Print "i=" & I                     '把变量及值输出到窗体上
        Print "j=" & j                     '把变量及值输出到窗体上
        Print "Str=" & Str                 '把变量及值输出到窗体上
        Str = Str + " afternoon"           '再次给字符串变量赋值
        Print "Str=" & Str                 '把变量及值输出到窗体上
        Bool = i = 4                         '给布尔变量赋值
        Print "Bool=" & Bool               '把变量及值输出到窗体上
        End Sub

单击工具栏中的保存按钮保存工程,然后单击工具栏中的启动按钮运行工程,程序的运行结果如图3.1所示。

图3.1 程序运行界面图

然后单击工具栏中的结束按钮,或者单击运行窗口的关闭按钮,结束程序的运行。

源程序解读

(1)在Form_ Click()事件中,首先定义了两个整型变量i,j,一个字符串变量Str,一个布尔变量Bool。

(2)其次,使用赋值语句给窗体的BackColor属性赋值为VBWhite,使得在单击窗体时窗体的背景色变为白色。

(3)第三,分别使用赋值语句给变量赋值。首先给变量i赋值为4,然后把i+1赋值给变量j,接着使用Print方法把变量i和j在窗体上显示出来。

(4)第四,给变量Str赋值为“Good”,并运用Print方法把Str变量在窗体上显示出来。然后再次给变量Str赋值为Str+“afternoon”,并把新的赋值在窗体上显示出来。这个主要是测试字符变量与自身的连接。

(5)最后,给变量Bool赋值为i=4,并把变量的值在窗体上显示出来。

说明:前面说到赋值语句的左右两端的数据类型要相容,一般不把数值赋值给字符串型的变量,但是当把数值赋值给字符串型的变量时,也不会出错,只是把数值作为字符串处理了,例如本实例中如果出现“Str=i”这个语句,则在窗体上会显示“Str=4”这个语句。

3.2 运用Print方法显示图片

在上一节中介绍了赋值语句的运用,其中要重点注意赋值语句的赋值方法和类型的相容性。另外,在上节的实例中还用到了Print方法,本节就详细介绍Print方法的应用,即显示图片和文字。

技术要点

本实例中主要用到的技术是Print方法和图片框控件Picture的Click事件。主要功能和用法如下:

● Print方法,主要用于在窗体、图片框、立即窗口等对象上显示字符串。

●图片框Picture控件的Click事件,是单击图片框控件时触发的事件。

Print方法的具体使用语法为:

        [Object.]Print [OutPutList]

其中,Object参数表示窗体、立即窗口、图片框等对象,是可选参数,如果省略,表示在当前窗体上输出;OutPutList参数,表示输出列表,可以是一个表达式或一系列表达式,当为多个表达式时,各表达式之间使用逗号“,”或分号“;”隔开。

说明:Print方法除了显示功能外,还有计算功能,例如:当执行Print 4*5时,会在当前窗体显示出20。

实现代码

        Private Sub Form_Click()
            FontSize = 18                            '设置显示字体大小
            ForeColor = vbRed                        '设置显示字体颜色
            Print "请观看图片!"                   '在窗体中显示字符串
            Print Now                                '在窗体上显示系统当前时间
        End Sub
        Private Sub Picture1_Click()
            Picture1.FontSize = 16                   '设置显示字体大小
            Picture1.ForeColor = vbRed               '设置显示字体颜色
            Picture1.Print "可爱的小兔子!"        '在图片框中显示字符串
        End Sub

按Ctrl+S组合键保存工程,然后按F5键运行工程。单击当前窗体时,程序的运行结果如图3.2所示。当单击图片框控件时,程序的运行结果如图3.3所示。当单击当前窗体和图片框控件时,程序的运行结果如图3.4所示。

图3.2 单击当前窗体的运行界面图

图3.3 单击图片框的运行界面图

图3.4 单击当前窗体和图片框的运行界面图

源程序解读

(1)在Form_ Click()事件中,首先由FontSize属性设置显示字体的大小。由ForeColor属性设置显示字体的颜色。然后运用Print方法在当前窗体上显示字符串和系统当前的时间。

(2)在Picture1_ Click()事件中,首先由“Picture1”图片框的FontSize属性设置显示字体的大小。由“Picture1”图片框的ForeColor属性设置显示字体的颜色。然后运用“Picture1”图片框的Print方法在图片框上显示字符串。

3.3 注释语句和End语句

在上一节中介绍了Print方法,读者从中理解了Print方法的基本运用方法。另外,在上面的所有实例中都用到了注释语句和End语句,但是对于这两种语句的用法没有详细介绍,本节就来介绍这两种语句的基本用法。

技术要点

本实例运用的主要技术是注释语句和End语句,主要功能和用法如下:

●注释语句,主要用来注释程序中的代码,增加程序的可理解性。

● End语句,主要用来结束一个过程或模块。

注释语句的具体语法如下:

        Rem|'注释内容

常用的注释语句使用标识符“'”作为注释语句的开始,当使用标识符Rem作为注释语句的开始时,其与注释内容之间应该加一个空格隔开,注释语句可以单独作为一行放置在代码的上方,也可以放置在代码行的后面。一般对于整个过程或函数进行说明时,注释语句放置在代码模块的上方;对于某行代码进行说明时,一般把注释语句放在本行的后面。

End语句的具体语法如下:

        End[Object]

其中,Object就是要结束的对象,可以是一个过程Sub,一个函数Function,一个语句If、Select或With。当参数Object省略时,就是结束当前过程。

实现代码

        Private Sub Form_Load()
            Dim PassW As String                               '定义字符串变量
            PassW = "123456"                              '给变量赋值
            TxtName.Text = "管理员"                       '给用户名的文本框赋值
            TxtPassWord.Text = InputBox("请输入密码")   '输入密码
            If TxtPassWord.Text = PassW Then
                MsgBox "登录成功!"                       '输出登录成功的窗口
            Else
                MsgBox "登录失败!"                       '输出登录失败的窗口
                End                                         '结束过程的执行
            End If
        End Sub

按Ctrl+S组合键保存工程,然后,按F5键,运行工程。单击启动按钮后,程序运行结果如图3.5所示。当输入错误密码并单击“确定”按钮时,程序运行结果如图3.6所示。当输入正确密码并单击“确定”按钮时,程序运行结果如图3.7和图3.8所示。

图3.5 输入密码界面图

图3.6 登录失败界面图

图3.7 登录成功界面图

图3.8 登录成功后的界面图

源程序解读

(1)在Form_ Load()事件中,首先定义了一个字符型变量PassW。然后给PassW赋值,并且给文本框控件TxtName赋值为“管理员”。

(2)接下来由InputBox方法接受输入的密码值并赋值给文本框TxtPassWord。

(3)然后运用条件语句If判断输入的密码值和PassW值的一致性。如果相同,使用MsgBox显示登录成功的窗口;否则,显示登录失败的窗口,并由End语句强制结束代码执行。

3.4 If条件语句

前面介绍了顺序结构的几种语句,从本节开始要介绍选择结构中的语句,选择结构,顾名思义,是根据不同的结构做出不同的选择,从而执行不同的操作。本节主要介绍选择结构中的If条件语句的应用实例,即显示学生的成绩。

技术要点

本实例中主要运用的技术是If语句。If语句就是在选择结构中根据某种条件做出选择。If语句分为单行和多行两种情况,对于单行情况的具体语法为:

        If Condition Then 语句1[Else语句2]

其中,参数Condition为选择的判断条件,可以是表达式或对象型,运行结果都是布尔类型True或False;参数“语句1”表示Condition运行结果为True是执行的操作。“Else语句2”是可选项,是Condition运行结果为False时执行的操作,一般情况可以省略。

多行情况的具体语法有以下三种:

        If Condition Then
        语句体
        End If
        If Condition Then
        语句体1
        Else
        语句体2
        End If
        If Condition1 Then
        语句体1
        Else If Condition2 Then
        语句体2
        [Else If Condition3 Then
        语句体3]
        ......
        [Else
        语句体n]
        End If

第一种情况,只有一种判断标准,即一个条件,当满足这个条件时,就执行语句体,否则,退出If语句,执行下面的语句;第二种情况,虽然看似有一个条件,实际有两个判断条件,即满足和不满足给定的条件,当满足给定条件时,执行语句体1,否则执行语句体2,然后退出If语句;第三种情况,比较复杂,有两个或以上的条件,满足哪个条件,就执行对应的语句体。

实现代码

            Private Sub Form_Load()
            Dim x As Integer                               '定义整型变量
            x = InputBox("请输入成绩")                '输入学习成绩并赋值给变量
            If x > = 90 Then                             '学习为优成绩标准
                TxtStand.Text = "学习成绩为优"          '显示学习成绩标准
            ElseIf x > = 80 Then                         '学习为良成绩标准
                TxtStand.Text = "学习成绩为良"          '显示学习成绩标准
            ElseIf x > = 70 Then                         '学习为中成绩标准
                TxtStand.Text = "学习成绩为中"          显示学习成绩标准
            ElseIf x > = 60 Then                         '学习为及格成绩标准
                TxtStand.Text = "学习成绩为及格"        '显示学习成绩标准
            Else                                          '学习为不及格成绩标准
                TxtStand.Text = "学习成绩为不及格"      '显示学习成绩标准
            End If
            LabShow.Caption = "学习成绩=" & x           '显示成绩
        End Sub

按Ctrl+S组合键保存工程,然后按F5键运行工程。单击启动按钮后,程序运行结果如图3.9所示。输入数据并单击“确定”按钮时,程序运行结果如图3.10所示。

图3.9 输入成绩界面图

图3.10 显示成绩及标准的界面图

源程序解读

(1)在Form_ Load()事件中,首先定义了一个整型变量x,用来存储输入的成绩。然后由InPutBox方法输入成绩并赋值给变量x。

(2)接下来使用If语句,根据判断标准判断输入的成绩满足哪种标准,并把标准由“TxtStand”文本框显示出来。最后,由“LabShow”标签显示输入的成绩。

3.5 Select Case语句

在上一节介绍了选择结构的If语句,If语句有时使用起来很方便,但是当条件有两个以上时,使用起来就比较烦琐,这时就需要用到本节要介绍的选择语句——Select Case语句。

技术要点

本节实例中主要使用的技术是Select Case语句。Select Case语句主要适用于一个表达式可能有很多种结果产生的情况。具体语法如下:

        Select Case Expression
        Case表达式结果表1
        语句体1
        [Case表达式结果表2
        语句体2]
        ......
        [Case Else
        语句体n]
        End Select

其中,参数Expression,表示用于判断的表达式,可以是数值表达式或字符串表达式;“表达式结果表1”是表达式的一种结果,如果表达式的结果属于表达式结果表1,就会执行语句体1;否则继续与下面的表达式结果表比较,如果不属于任何表达式结果表,就执行语句体n。

实现代码

        Private Sub Form_Load()
            Dim x As Integer                              '定义整型变量
            x = InputBox("请输入成绩")                '输入学习成绩并赋值给变量
            Select Case x
                Case Is > = 90                           '学习为优成绩标准
                  TxtStand.Text = "学习成绩为优"        '显示学习成绩标准
                Case Is > = 80                           '学习为良成绩标准
                  TxtStand.Text = "学习成绩为良"        '显示学习成绩标准
                Case Is > = 70                           '学习为中成绩标准
                  TxtStand.Text = "学习成绩为中"        '显示学习成绩标准
                Case Is > = 60                           '学习为及格成绩标准
                  TxtStand.Text = "学习成绩为及格"      '显示学习成绩标准
                Case Is < 60                             '学习为不及格成绩标准
                  TxtStand.Text = "学习成绩为不及格"    '显示学习成绩标准
            End Select
            LabShow.Caption = "学习成绩=" & x           '显示成绩
        End Sub

按Ctrl+S组合键保存工程,然后按F5键运行工程。单击启动按钮后,程序运行结果如图3.11所示。输入数据,并单击“确定”按钮时,程序运行结果如图3.12所示。

图3.11 输入成绩界面图

图3.12 显示成绩及标准的界面图

源程序解读

(1)在Form_ Load()事件中,首先定义了一个整型变量x,用来存储输入的成绩。然后由InPutBox方法输入成绩并赋值给变量x。

(2)接下来使用Select Case语句,根据x的数值执行成绩标准的输出操作,在每个表达式结果表中运用Is关键字把x的值与后面的值进行比较,如果满足条件就执行相应的语句体。

说明:使用关键字Is时,可以配合关系运算符(除Like和Is外)指定数值范围。

3.6 For循环语句

在上一节中分别介绍了顺序结构中的语句和选择结构中语句的运用实例。从本节开始介绍循环结构的相关语句,循环结构指的是在执行语句时,根据循环变量,要对其重复执行多次。循环结构中包括三种语句:For循环语句,While循环语句和Do循环语句。本节介绍For循环语句的应用实例,即计算矩阵乘法。

技术要点

本实例中使用的主要技术是For循环语句。For循环语句属于计数型循环,按照循环变量指明的循环次数,循环执行循环体,具体语法如下:

        For 循环变量=Start To End [Step step]
        [循环体]
        [Exit For]
        [循环体]
        Next 循环变量

其中各参数含义表示如下:

●参数“循环变量”,表示控制和统计循环次数的变量,该变量的数据类型应该是数值型。

● Start表示循环变量的初值,数据类型为数值型。

● End表示循环变量的终值,数据类型也为数值型。

●参数step表示步长,是可选参数,省略的情况下,默认为1,当循环变量的变化差值大于1时,要参数step进行设置,例如循环变量的差值是2,那么step=2,当Start的值小于或等于End的值时,参数step的值为正,当Start的值大于End的值时,参数step的值为负;参数“循环体”,表示满足循环变量时执行操作。

●参数“Exit For”,当有某种特殊情况需要退出For循环时,使用这个参数,这时,后面的循环体就不再执行。

●参数“Next循环变量”,用于结束一次For循环,然后根据Start和End值的大小决定是否进行下一次循环。

另外,For循环还有另外一种语法表示方法,具体语法如下:

        For Each element In Group
        [循环体]
        [Exit For]
        [循环体]
        Next [element]

其中,参数element表示遍历集合中所有元素的变量,它的数据类型根据集合对象的不同而不同,如果是一个集合,那么element的数据类型可以是可变型或者任何对象型,如果是数组,那么element的数据类型只能是可变型;参数Group表示一个集合或者数组。参数“Next[element]”表示遍历集合中的下一个元素。

实现代码

        Dim ArrR(2,3)As Integer                                              '定义结果矩阵
        Private Sub Form_Load()
            Dim i,j,k As Integer                                               '定义循环变量
            ArrM(0,0)= 2                                                    '给M矩阵的第1个元素赋值
            ArrM(0,1)= 1                                                    '给M矩阵的第2个元素赋值
            ArrM(0,2)= 0                                                    '给M矩阵的第3个元素赋值
            ArrM(0,3)= 5                                                    '给M矩阵的第4个元素赋值
            ArrM(1,0)= 0                                                    '给M矩阵的第5个元素赋值
            ArrM(1,1)= -1                                                   '给M矩阵的第6个元素赋值
            ArrM(1,2)= 2                                                    '给M矩阵的第7个元素赋值
            ArrM(1,3)= 0                                                    '给M矩阵的第8个元素赋值
            ArrM(2,0)= 2                                                    '给M矩阵的第9个元素赋值
            ArrM(2,1)= 0                                                    '给M矩阵的第10个元素赋值
            ArrM(2,2)= 0                                                    '给M矩阵的第11个元素赋值
            ArrM(2,3)= 1                                                    '给M矩阵的第12个元素赋值
            ArrN(0,0)= 0                                                    '给N矩阵的第1个元素赋值
            ArrN(0,1)= 2                                                    '给N矩阵的第2个元素赋值
            ArrN(0,2)= 2                                                    '给N矩阵的第3个元素赋值
            ArrN(0,3)= 1                                                    '给N矩阵的第4个元素赋值
            ArrN(1,0)= 1                                                    '给N矩阵的第5个元素赋值
            ArrN(1,1)= 3                                                    '给N矩阵的第6个元素赋值
            ArrN(1,2)= 3                                                    '给N矩阵的第7个元素赋值
            ArrN(1,3)= 4                                                    '给N矩阵的第8个元素赋值
            ArrN(2,0)= -2                                                   '给N矩阵的第9个元素赋值
            ArrN(2,1)= 4                                                    '给N矩阵的第10个元素赋值
            ArrN(2,2)= -3                                                   '给N矩阵的第11个元素赋值
            ArrN(2,3)= 2                                                    '给N矩阵的第12个元素赋值
            ArrN(3,0)= 1                                                    '给N矩阵的第13个元素赋值
            ArrN(3,1)= 0                                                    '给N矩阵的第14个元素赋值
            ArrN(3,2)= -5                                                   '给N矩阵的第15个元素赋值
            ArrN(3,3)= 7                                                    '给N矩阵的第16个元素赋值
            For i = 0 To 2
                For j = 0 To 3
                  ArrR(i,j)= 0                                              '初始化结果矩阵
                  For k = 0 To 3
                      ArrR(i,j)= ArrR(i,j)+ ArrM(i,k)*ArrN(k,j)    '计算矩阵乘积
                  Next k
                Next j
            Next i
            For i = 0 To 3
                TxtR1(i)= ArrR(0,i)                 '显示结果矩阵的第一行
                TxtR2(i)= ArrR(1,i)                 '显示结果矩阵的第二行
                TxtR3(i)= ArrR(2,i)                 '显示结果矩阵的第三行
            Next i
        End Sub

按Ctrl+S组合键保存工程,然后按F5键运行工程。单击启动按钮后,程序运行结果如图3.13所示。

图3.13 程序运行结果图

源程序解读

(1)代码首先定义了三个二维数组:ArrM(2,3),表示一个被乘数矩阵。ArrN(3,3),表示一个乘数矩阵。ArrR(2,3)表示两个矩阵乘积的结果矩阵。

(2)在Form_ Load()事件中,首先定义三个整型循环变量。然后分别给被乘数矩阵和乘数矩阵赋初值。

(3)接着运用三重For循环执行两个矩阵的乘积。三重循环分别由循环变量i,j,k控制,最终计算结果存储在数组ArrR()中。并且由“TxtR”文本框数组显示出来。

3.7 While循环语句

在上一节中介绍了For循环语句的应用实例。本节接着介绍另外一种循环语句——While循环语句的应用实例,即有顺序的显示乘法表,希望读者通过此例掌握While循环语句的运用方法。

技术要点

本节使用的主要技术是While语句。While语句也用于对某个条件的判断,如果满足条件,就执行循环体;条件不成立就结束循环,不再执行循环体,具体语法如下:

        While Condition
        [循环体]
        Wend

其中,参数Condition表示控制循环执行的条件,一般为数值表达式或字符串表达式,结果为True或False,如果Condition为空,则作为False处理;参数“循环体”为一条或多条语句,只有当Condition为真时才执行。

While循环的执行过程是:首先判断条件是否成立,如果成立,则执行循环体,执行完再判断条件是否成立,重复上述过程;否则,如果不成立,则结束循环,执行循环下面的语句。

说明:While循环允许嵌套,即While循环体中允许再出现While循环,本实例就使用了While循环嵌套。

实现代码

        Private Sub Form_Click()
            FontSize = 14                                                      '定义显示数字的大小
                ForeColor = vbBlue                                             '定义显示数字的颜色
                Print Tab(40);"乘法表"                                    '在窗体上显示标题
                Print Tab(37);" - - - - - - - - - -"                      '在窗体上显示下画线
                While i < = 9                                                  '限定外循环条件
                  j = 1                                                        '初始化内循环变量
                  While j < = I                                                '限定内循环条件
                      Print Tab((j-1)*9+1);i & "*" & j& " =" & i*j;    '在窗体上显示乘法表
                      j = j + 1                                                '内循环变量增1
                  Wend
                  Print                                                        '显示到下一行
                  i = i + 1                                                    '外循环变量增1
              Wend
            End Sub

按Ctrl+S组合键保存工程,然后按F5键运行工程。单击“启动”按钮后,程序运行结果如图3.14所示。

图3.14 程序运行结果图

源程序解读

(1)在Form_ Click()事件中,首先使用FontSize和ForeColor两个属性分别设置显示数字的大小和颜色。然后运用Print方法在窗体上显示字符和下画线。

(2)接下来使用While循环语句在窗体上显示乘法表。

(3)首先,使用循环变量i控制外循环,循环条件为i< =9,即要循环执行循环体9次。

(4)其次,给内循环变量j赋初值1,并再次使用While循环语句,循环条件为j< =i,说明内循环受控于外循环。如果条件成立就执行Print方法,显示各乘法算式;否则,执行Print方法,转换到下一行。

(5)最后,继续判断外循环条件,依次重复下去。

说明:While循环语句与For循环的不同之处在于:For循环的循环次数已知,而While循环的次数提前未知,只能通过判断条件决定循环是否结束。

3.8 Do循环语句

在前面两节中分别介绍了For循环语句和While循环语句,这两种循环语句各有利弊,要根据具体情况选择合适的语句,本节接着介绍第三种循环语句——Do循环语句的应用实例,即计算从1到nn个整数的和。

技术要点

在本实例中用到的主要技术是Do循环语句。Do循环语句也是根据某个判断条件是否成立来决定循环体是否被执行,Do循环有两种语法格式,第一种语法格式:

        Do [{While|Until}Condition]
        [循环体]
        [Exit Do]
        [循环体]
        Loop

第二种语法格式:

        Do
        [循环体]
        [Exit Do]
        [循环体]
        Loop[{While|Until}Condition]

其中各参数的含义如下:

●参数Condition表示控制循环进行的条件,可以为数值型表达式或字符型表达式。

●参数“循环体”,是一条或多条语句,这个语句体,在第一种格式中,如果条件不成立就不再执行,而在第二种格式中,当条件不成时也要执行一次,因此,第二种格式至少执行一次循环体,而第一种格式可能不执行循环体。

●参数Exit Do,表示因为某个条件要中途跳出Do循环,后面的循环体就不被执行,而执行Do循环外的下面语句。Exit Do语句可以有条件限制,也可以直接使用,一般会有条件限制。

实现代码

        Private Sub Form_Click()
            Dim s,i,n As Integer                           '定义整型变量
            n = InputBox("请输入一个整数")              '输入一个整数并赋值给变量n
            i = 1                                           '给变量i赋初值
            s = 0                                           '给变量s赋初值
            Do
                s = s + i                                     '累加i
                i = i + 1                                     'i增1
            Loop Until (i > = n)                            '判断条件
            Print "1到n个整数的和为:" & s                  '显示累加和
            i = 1                                             '给变量i赋初值
            s = 0                                             '给变量s赋初值
            Do While(i < = n)                              '判断条件
                s = s + i                                     '累加i
                i = i + 1                                     'i增1
            Loop
            Print "1到n个整数的和为:" & s                  '显示累加和
        End Sub

单击工具栏中的保存按钮,保存工程,然后单击工具栏中的启动按钮,运行工程,程序运行结果如图3.15和图3.17所示。当在文本框中输入数据10,并单击“确定”按钮时,程序运行结果如图3.16所示。当在文本框中输入数据0,并单击“确定”按钮时,程序运行结果如图3.18所示。

图3.15 输入整数界面图

图3.16 运行结果界面图

图3.17 输入整数界面图

图3.18 运行结果界面图

然后单击工具栏中的结束按钮,或者单击运行窗口的关闭按钮,结束程序的运行。

源程序解读

(1)在Form_ Click()事件中,首先定义三个整型变量i,s,n,分别表示循环变量、累加和变量、输入整数变量。然后分别给三个变量赋初值为1、0、n的值是由InputBox方法得到的。

(2)接下来,分别使用Do循环的两种语法格式进行1到n的整数累加操作。最后把累加和由Print方法显示在当前窗体上。

注意:在使用第一种语法格式进行整数累加操作之前要再次给变量i和s赋初值,否则当输入整数0时,会出现错误。

3.9 Write语句写入文件

前面介绍了VB三种结构中的一些语句,这些语句都是编程的基础,希望读者能够掌握这些语句的相关语法和语句之间的不同点。本节在前面学习的基础上,介绍另外一种语句——Write语句的运用实例,即在文本框中写入文件。

技术要点

在本实例中主要用到了Write语句、Open语句和Close语句,主要功能和用法如下:

● Write语句,主要用于将数据写入文件。

● Open语句,主要用于打开一个已知的文件。

● Close语句,主要用于关闭一个打开的文件。

Write语句的具体语法为:

        Write#FileNumber [OutputList]

其中,参数FileNumber表示任何有效的文件号,在本例中文件号为1,也可以为其它的,但是,这个文件号要与打开文件时赋予文件的文件号相同,否则编译时会出错;参数OutputList,表示要写入的数据,这些数据可以是数值表达式,或字符串表达式,当要写入的是一首诗时,如本例一样,要在每句诗之间使用换行符vbCrLf隔开。

Open语句的具体语法为:

        Open PathName For Mode[Access access][Lock]As[#]FileNumber [Len=reclength]

其中各参数的含义如下:

●参数PathName表示打开文件的路径,打开一个已知文件时,必须指明打开路径,否则无法找到文件。

●参数Mode表示打开文件的方式,打开文件有很多种方式:Append,Binary,Input, Outut或Random方式,如果没有指明,默认为Random方式。本实例中,采用的是Output方式。

●参数access表示打开文件可以进行的操作,有读操作,写操作或读写操作。

●参数Lock表示其他进程可以对打开文件进行的操作,有共享、锁定读操作,锁定写操作或锁定读写操作,这个参数可选,但一般不常用。

●参数FileNumber表示一个有效的文件号,有效的文件号范围在1~511之间。

●参数reclength表示一个小于等于32767的数,当以Random方式打开文件时,使用该参数记录文件长度。

Close语句的具体语法如下:

        Close[FileNumberList]

其中,参数FileNumberList表示关闭文件的文件号列表;当关闭当前一个文件时这个参数可以省略。

实现代码

        Private Sub Form_Click()
            Dim FileStr As String                                                       '定义字符串变量
            Open App.Path & "\FileMe.txt " For Output As#1                           '打开要写入文字的文件
            '设置写入的文字
            FileStr = "春夜即事" & vbCrLf & "霞绡云幄任铺陈,隔巷蟆更听未真." & vbCrLf &"枕上轻寒窗外雨,眼
        前春色梦中人." & vbCrLf & "盈盈烛泪因谁泣,点点花愁为我嗔." & vbCrLf & "自是小鬟娇懒惯,拥衾不耐笑
        言频."
            Write#1,FileStr                                                           '将文字写入文件
            MsgBox "已经将信息写入FileMe.txt文件中!",vbInformation,"信息提示"   '提示文字已经写入
            TxtFile.Text = FileStr                                                     '显示写入的文字
            Close                                                                      '关闭文件
        End Sub

单击工具栏中的保存按钮,保存工程,然后单击工具栏中的启动按钮,运行工程,程序运行结果如图3.19所示。写入文件后,程序运行结果如图3.20和图3.21所示。

图3.19 初始状态界面图

图3.20 写入文字之后的界面图

图3.21 显示文字的界面图

然后单击工具栏中的结束按钮,或者单击运行窗口的关闭按钮,结束程序的运行。

源程序解读

(1)在Form_ Click()事件中,首先定义了一个字符串变量FileStr,用来存储写入文件的数据。

(2)接下来,使用Open语句,以Output方式打开当前文件夹下的文件FlieMe.txt,并赋予文件编号为1。

(3)然后,给FileStr赋初值,本例中为一首诗。

(4)最后,运用Write语句把FileStr中的内容写入文件。写入后使用MsgBox方法显示写入成功的提示框,并使用“TxtFile”文本框显示写入的数据。