《VisualBasic基本语句与结构.ppt》由会员分享,可在线阅读,更多相关《VisualBasic基本语句与结构.ppt(79页珍藏版)》请在三一办公上搜索。
1、第4章 Visual Basic基本语句与结构,赋值语句与注释语句暂停语句与结束语句数据输出Print方法交互函数选择结构循环语句与循环结构GoTo型控制结构上机实验,4.1 赋值语句与注释语句,4.1.1 语句书写规则在VB中,进行程序的语句输入时,一般情况是一行一句。但VB允许使用复合语句行,即把几个语句(特别是短语句)放在一行中,各语句之间用冒号(:)隔开。一个语句行的长度最多不能超过1023个字符(ASCII码)。在输入过程中,可以通过续行符把程序分别放在几行中。Visual Basic 6.0中所使用的续行符是下划线(_)。如果一个语句行的末尾是下划线,则下一行与该行属于同一个语句行
2、。注意:续行符前要求有一个空格。,4.1.2 赋值语句,用赋值语句可以把指定的值赋给某个变量或某个带有属性的对象,其一般格式为:Let=其中,“=”被称为“赋值号”(与等号概念不同)。它的功能是:先计算表达式的值,然后把它的值赋给赋值号左边的变量。所以赋值语句含有双重功能,即计算和赋值。为变量或属性的名称,是任何数据类型的表达式,但两者的类型必须相同或兼容,4.1.2 赋值语句,例4.1 赋值语句示例。本例的前3个赋值语句分别是数值型、字符型和逻辑型,而后3个语句给对象的属性赋值。Dim ABC As Integer,Str As String,Lg As BooleanABC=3456Str
3、=”程序设计”Lg=TrueText1.Text=”欢迎使用”Label1.Caption=Str+Text1.TextForm1.Visible=False,4.1.3 注释语句,注释语句用来给程序或语句添加注释,以提高程序的可读性,其格式为:Rem|注释语句可单独占用一行或与语句行同行(即直接在语句的后面)。若在其他语句行后面使用Rem命令,则必须使用冒号(:)与语句隔开;若在其他语句行后使用单引号,不必加冒号。这里特别提醒:单引号是英文情况下的符号,4.2 暂停语句与结束语句,4.2.1 暂停语句(Stop)Stop语句用来暂停程序的执行,其作用类似执行“运行”/“中断”命令。当执行St
4、op语句时,将中断程序的运行并自动打开立即窗口。Stop语句的主要作用是把解释程序设置为中断(Break)模式,以便对程序进行检查和调试。一旦VB应用程序通过编译并能运行,则不再需要解释程序的辅助,也不需要进入中断模式。因此,程序调试结束后,生成可执行文件之前,应删去代码中的所有Stop语句。,4.2.2 结束语句(End),End语句结束的是一个过程或块。它提供了一种强迫中止程序的方法。End语句可放在程序中的任何位置,执行到End语句时将退出程序。,4.3 数据输出Print 方法,Visual Basic用Print方法实现数据输出该方法可用于窗体,也可用于其他对象。实际上,用于窗体的方
5、法有的也可以用于其他多种对象。在这一节中,将主要介绍如何在窗体中使用这种方法。,4.3.1 Print方法,Print方法可以在窗体上显示文本字符串和表达式的值,并可在其他图形对象或打印机上输出信息。其一般格式为:对象名称.Print表达式表,|;,4.3.1 Print方法,(1)“对象名称”可以是窗体(Form)、图片框(PictureBox)或打印机(Printer),也可以是立即窗口(Debug)。如果省略“对象名称”,则在当前窗体上输出(2)“表达式表”是一个或多个表达式,可以是数值表达式或字符串。对于数值表达式,打印出表达式的值;而字符串则照原样输出。如果省略“表达式表”,则输出一
6、个空行。(3)当输出多个表达式或字符串时,各表达式用分隔符(逗号、分号或空格)隔开。如果输出的各表达式之间用逗号分隔,则按标准输出格式(分区输出格式)显示数据项。如果各输出项之间用分号或空格作为分隔符,则按紧凑输出格式输出数据。(4)Print方法具有计算和输出双重功能,对于表达式,它先计算后输出。(5)在一般情况下,每执行一次Print方法要自动换行(6)Print方法在Form_Load事件过程中不起作用。,4.3.2 与Print方法有关的函数,1.Tab函数 格式:Tab(n)Tab函数把光标移到由参数n指定的列,从这个位置开始输出信息。要输出的内容放在Tab函数的后面,并用分号隔开。
7、(1)参数n为数值表达式,其值为一整数,它是下一个输出位置的列号,表示在输出前把光标(或打印头)移到该列(2)对参数n的取值范围没有具体限制。当n比行宽大时,显示位置为n Mod 行宽(3)当在第一个Print方法中有多个Tab函数时,每个Tab函数对应一个输出项,各输出项之间用分号隔开。,4.3.2 与Print方法有关的函数,例4.2 打印如下的人员名册,4.3.2 与Print方法有关的函数,例4.2 代码:Private Sub Form_Click()FontName=隶书 字体类型为“宋体”FontSize=16 字体大小为12FontBold=True 字体为粗体Print 姓名
8、;Tab(8)Print 部门;Tab(16);职务;Tab(16)PrintPrint 张三;Tab(8);科研室;Tab(16);科长;Tab(16)Print 李四;Tab(8);人力部;Tab(16);部长;Tab(16)End Sub,4.3.2 与Print方法有关的函数,2.Spc函数 格式:Spc(n)在Print的输出中,用Spc函数可以跳过n个空格。(1)参数n是一个数值表达式,其取值范围为032767的整数。Spc函数与输出项之间用分号隔开(2)Spc函数和Tab函数作用类似,而且可以互相代替。但应注意,Tab函数需要从对象的左端开始计数,而Spc函数只表示两个输出项之间
9、的间隔。,4.3.2 与Print方法有关的函数,3.空格函数格式:Space$Space$函数返回n个空格。例如(在“立即”窗口中试验):x$=ab+Space(8)+bc“print x$显示ab bc,4.3.3 格式输出,用格式输出函数Format$可以使数值或日期按指定的格式输出。一般格式为:Format$(数值表达式,格式字符串)该函数的功能是:按“格式字符串”指定的格式输出“数值表达式”的值。,4.3.3 格式输出,用Format$函数可以使数值按“格式字符串”指定格式输出,包括在输出字符串前加$、字符串前或后补充0及加千位分隔符等。,格式说明字符,4.3.4 其他方法和属性,1
10、.Cls方法 格式:对象.ClsCls清除由Print方法显示的文本或在图片框中显示的图形,并把光标移到对象的左上角(0,0)。这里的“对象”可以是窗体或图片框,如果省略“对象”则清除当前窗体内的显示内容。,4.3.4 其他方法和属性,2.Move方法格式:对象.Move 左边距离,上边距离,宽度,高度Move方法用来移动窗体和控件,并可改变其大小。其中“对象”可以是窗体及除计时器(Timer)、菜单(Menu)之外的所有控件,如果省略“对象”,则表示要移动的是窗体。“左边距离”,“上边距离”、“宽度”及“高度”均以twip为单位。如果“对象”是窗体,则“左边距离”和“上边距离”均以屏幕左边界
11、和上边界为准;如果“对象”是控件,则以窗体的左边界和上边界为准,4.3.4 其他方法和属性,例4.3 在窗体的任意位置画一个文本框和一个图片框(大小任意)。编写程序移动它们的位置并改变其大小。,4.3.4 其他方法和属性,例4.3 代码Private Sub Form_Click()Move 400,500,4000,2000Text1.Move 100,200,1000,1500Picture1.Move 1200,200,1000,2000Picture1.Print Picture1End Sub,4.3.4 其他方法和属性,3.TextHeight和TextWidth方法 格式:对象.
12、TextHeight(字符串)对象.TextWidth(字符串)这两个方法用来辅助设置坐标。其中TextHeight方法返回一个文本字符串的高度值,而TextWidth方法则返回一个文本字符串的宽度值,它们的单位均为twip。当字符串的字形和大小不同时,所返回的值也不一样。“对象”包括窗体和图片框,如果省略“对象”,则用来测试当前窗体中的字符串。,4.3.4 其他方法和属性,例4.4 编写程序,试验TextHeight方法。Private Sub Form_Click()Print Visual BasicCurrentY=TextHeight(Visual)*8 下一个输出位置的Y坐标Cur
13、rentX=0 下一个输出位置的X坐标Print Visual BasicPrintText$=VBPrint Text$Print TextHeight(Text$),TextWidth(Text$)FontSize=16设置字体大小PrintPrint Text$Print TextHeight(Text$),TextWidth(Text$)End Sub,4.3.4 其他方法和属性,例4.5 编写程序,使字符串居中显示。Private Sub Form_Click()FontSize=24Sample$=Visual Basic程序设计x=(ScaleWidth-TextWidth(Sa
14、mple$)/2y=(ScaleHeight-TextHeight(Sample$)/2CurrentX=xCurrentY=yPrint Sample$End Sub,4.4 交互函数,4.4.1 InputBox函数 InputBox函数可以产生一个对话框,作为输入数据的界面,等待用户输入数据,并返回所输入的内容。其格式为:InputBox(prompt,title,default,xpos,ypos,helpfile,context),4.4.1 InputBox函数,该函数有7个参数,其含义如下:(1)prompt:是一个字符串,其长度不得超过1024个字符,它是在对话框内显示的信息,
15、用来提示用户输入。(2)title:字符串,它是对话框的标题,显示在对话框顶部的标题区。(3)default:字符串,用来显示输入缓冲区的默认信息。(4)xpos,ypos:是两个整数值,分别用来确定对话框与屏幕左边的距离(xpos)和上边的距离(ypos),它们的单位均为twip。这两个参数必须全部给出,或者全部省略。如果省略这一对位置参数,则对话框显示在屏幕中心线向下约三分之一处。(5)helpfile,context:helpfile是一个字符串变量或字符串表达式,用来表示帮助文件的名字;context是一个数值变量或表达式,用来表示相关帮助主题的帮助目录号。这两个参数必须同时提供或同时
16、省略。,4.4.1 InputBox函数,在使用InputBox函数时,应注意以下几点。(1)执行InputBox函数后,产生一个对话框,提示用户输入数据,光标位于对话框底部的输入区中。(2)在默认情况下,InputBox的返回值是一个字符串(不是变体类型)。(3)在执行InputBox函数所产生的对话框中,有两个按钮,一个是“确定”,另一个是“取消”。在输入区输入数据后,单击“确定”按钮(或按回车键)表示确认,并返回在输入区中输入的数据;而如果单击“取消”按钮(或按Esc键),则使当前的输入作废,在这种情况下,将返回一个空字符串。(4)每执行一次InputBox函数只能输入一个值,如果需要输
17、入多个值,则必须多次调用InputBox函数。(5)和其他返回字符串的函数一样,InputBox函数也可以写成InputBox$的形式,这两种形式完全等价。,4.4.1 InputBox函数,例4.6 编写程序,用InputBox函数输入数据。Private Sub Form_Click()m1$=请输入姓名:mtitle$=员工简历m2$=请输入年龄:m3$=请输入性别:m4$=请输入籍贯:workername$=InputBox(m1$,mtitle$)workerage=InputBox(m2$,mtitle$)workersex$=InputBox(m3$,mtitle$)worker
18、home$=InputBox(m4$,mtitle$)ClsPrint workername$;,;workerhome$;,今年Print workerage;岁;,;workerhome$;人End Sub,4.4.2 MsgBox函数和MsgBox语句,在使用 Windows 时,如果操作有误,屏幕上会显示一个对话框,让用户进行选择,然后根据选择确定其后的操作。MsgBox函数的功能与此类似,它可以向用户传送信息,并可通过用户在对话框上的选择接收用户所做的响应,作为程序继续执行的依据。,4.4.2 MsgBox函数和MsgBox语句,MsgBox 函数的格式如下:MsgBox(msg,t
19、ype,title,helpfile,context)该函数有5个参数,除第一个参数外,其余参数都是可选的。各参数的含义如下:(1)msg:是一个字符串,其长度不能超过1024个字符,如果超过,则多余的字符被截掉。该字符串的内容将在由MsgBox函数产生的对话框内显示。当字符串在一行内显示不完时,将自动换行,当然也可以用“Chr$(13)+Chr$(10)”强制换行。(2)type:是一个整数制或符号常量,用来控制在对话框内显示的按钮、图标的种类及数量。该参数的值由4类数值相加产生,这4类数值或符号常量分别表示按钮的类型、显示图标的种类、活动按钮的位置及强制返回(3)title:是一个字符串,
20、用来显示对话框的标题。(4)helpfile,context:同InputBox函数。,4.4.2 MsgBox函数和MsgBox语句,MsgBox的Type参数取值,4.4.2 MsgBox函数和MsgBox语句,MsgBox函数的返回值,4.4.2 MsgBox函数和MsgBox语句,例4.7 编写程序,试验MsgBox函数的功能。Private Sub Form_Click()m1$=Error encountered while trying to open file,please retry.m2$=Text Editorr=MsgBox(m1$,290,m2$)Print rEnd
21、 Sub,4.5 选择结构,在许多情况下,人们希望程序语句执行的顺序依赖于输入数据或中间运算的结果。这时需要对某个变量或表达式的值进行判定,以决定执行哪些语句和跳过哪些语句不执行,我们称这种程序结构为选择结构(或分支结构)。,4.5.1 单行结构条件语句,1单行形式的IfThen 用途:通过对条件的判断有选择的执行一条语句语法:If 条件 Then 语句条件:是供判断的关系表达式或逻辑表达式语句:是条件成立的时候要执行的语句,4.5.1 单行结构条件语句,例4.8:找出用户输入的两个数的大数Private Sub Command1_Click()Dim A As Integer,B As In
22、teger Dim Max As Integer A=Int(InputBox(请输入第一个整数,输入,3)B=Int(InputBox(第输入第二个整数,输入,6)Max=A If Max B Then Max=B MsgBox Str(A)+与+Str(B)+之中的大数为+vbCrLf+Str(Max)End Sub,4.5.1 单行结构条件语句,2单行形式的IfThenElse 用途:根据条件是否成立从两条语句中选择一条执行语法:If 条件 Then 语句1 Else 语句2说明:Visual Basic在遇到 IfThenElse语句时首先计算出条件的逻辑值若为True(即条件成立),
23、则执行语句1若为False(即条件不成立),则执行语句2,4.5.1 单行结构条件语句,例4.9:验证用户输入的整数的奇偶性Private Sub cmd1_Click()Dim int1 As Integer,int2 As Integer int1=CInt(txtInput.Text)int2=int1 Mod 2 If int2=0 Then MsgBox 是一个偶数 _ Else MsgBox 是一个奇数End Sub,4.5.2 块结构条件语句,1多行形式的IfThenEnd IF用途:多行形式的IfThenEnd IF可用来判断单一条件来执行一组语句语法:If 条件 Then 语
24、句组End IF说明:这是IfThen语句的多行形式,使用这种形式的选择结构,在条件成立时要执行的语句不再直接跟在Then后面,而是另外自成一个语句块,并且在最后一定要加上End IF。,4.5.2 块结构条件语句,例4.10:三数排序,构造如图的界面,用户在3个文本框中输入3个数,单击按钮完成从大到小的排序,把结构显示在第4个文本框中。解析:这是一个简单的排序程序,也是排序算法中选择排序的雏形。通过两次判断,把最大的数放在第一位,再经过一次判断把第二大的数放在第二位,这样对于3个数,就完成了从大到小的排序。,4.5.2 块结构条件语句,例4.10 代码Private Sub Command1
25、_Click()Dim A As Single,B As Single,C As Single Dim D As Single 中间变量 A=Val(Text1.Text):B=Val(Text2.Text):C=Val(Text3.Text)If A B Then D=A:A=B:B=D End If If A C Then D=A:A=C:C=D End If If B C Then D=B:B=C:C=D End If Text4.Text=Str(A)+Str(B)+Str(C)End Sub,4.5.2 块结构条件语句,2多行形式的IfThenElse 用途:根据条件是否成立,选择执
26、行不同的语句组语法:If 条件 Then 语句组1Else 语句组2End IF说明:是单行IfThenElse结构的多行形式,不同之处是条件成立时执行的语句组1不能直接跟在Then后面而条件不成立时要执行的语句组2也不能直接跟在Else后面,两个语句组独立成行,可以是一条语句也可以是多条语句,而且多行形式的IfThenElse语句最后一定要有End If。两者的程序流程是相似的。,4.5.2 块结构条件语句,例4.11:分段函数求值,对于下面的函数,由用户输入一个X值,求Y值。,4.5.2 块结构条件语句,例4.11 代码Private Sub Command1_Click()Dim X A
27、s Single,Y As Single X=Val(InputBox(“X=”)If X=0 Then Y=X*X Else Y=2*X End If MsgBox Y=+Str(Y)End Sub,4.5.2 块结构条件语句,3多分支的IfThenElseIF 用途:可判断多重条件,执行多行语句。如果情况复杂,要判断的条件不止一个时,就需用到IfThenElse结构语法:If 条件1 Then 语句组1 ElseIF 条件2 Then 语句组2 ElseIF 条件n-1 Then 语句组n-1 Else 语句组n End If,4.5.2 块结构条件语句,3多分支的IfThenElseIF
28、说明:1)Visual Basic首先测试条件1是否成立,如果成立(值为True),执行语句组12)否则,继续判断条件2是否成立,如果成立(值为True),就执行语句组23)以此类推(条件3至条件n-1)4)如果所有条件都不成立,就执行Else之后的语句组n。,4.5.2 块结构条件语句,例4.12:判断输入成绩的等级,4.5.2 块结构条件语句,例4.12代码:Private Sub Command1_Click()Dim sngFen As Single sngFen=Val(InputBox(“请输入成绩:”)If sngFen=90 Then MsgBox 优秀 ElseIf sngF
29、en=80 Then MsgBox 良好 ElseIf sngFen=70 Then MsgBox 中等 ElseIf sngFen=60 Then MsgBox 及格 ElseIf sngFen=30 Then MsgBox 补考 Else MsgBox 重修 End If End Sub,4.5.3 IIf函数,用途:作为函数,根据测试表达式得到的逻辑值,从两个表达式选择一个作为返回值,其用途类似于IfThenElse语句,只不过IIf函数是一个用来返回值的选择结构。语法:IIf(测试表达式,True部分,False部分)说明:测试表达式是一个逻辑表达式,True部分与False部分可以是
30、一个表达式或变量与常量。,4.5.4 多分支选择控制结构(Select Case),用途:虽然IfThenElseIF可以用来判断多重条件的情况,但有时条件太多,程序会变得不易阅读,为此Visual Basic提供了Select Case 语句,使用Select Case语句可以使程序写起来较为简洁,不但容易阅读,执行起来也较有效率。语法:Select Case 测试表达式 Case 测试结果1语句组1 Case 测试结果2语句组2 Case 测试结果n-1语句组n-1 Case Else语句组nEnd Select,4.5.4 多分支选择控制结构(Select Case),说明:1)Visu
31、al Basic遇到Select Case时,首先计算出测试表达式的值,如果该测试表达式值满足Case后任何一个测试结果,则对应的语句组会被执行,如果都不满足,则执行Case Else后的语句组。2)测试结果可以是以下三者之一:一般表达式或常量、变量 范围表达式:expression To expression 比较表达式:Is 比较运算符 表达式,4.5.4 多分支选择控制结构(Select Case),例4.13:判断用户输入的整数除以3以后的结果:Private Sub Command1_Click()Dim x As Integer x=Val(InputBox(请输入一个正整数,输入
32、,32)Select Case x Mod 3 Case 0 MsgBox Str(x)+整除3 Case 1 MsgBox Str(x)+除以3余1 Case 2 MsgBox Str(x)+除以3余2 End SelectEnd Sub,4.6 循环控制结构,在实际应用中,经常遇到一些操作并不复杂,但需要反复多次处理的问题,比如要计算1+2+3+10000,直接把这个求和的表达式用手工输入显示是不现实的。循环结构可以帮助我们有效的解决这一类问题,利用循环结构,只需要编写少量的语句就可以让计算机重复执行许多次,从而完成大量类同计算的需求。Visual Basic提供了3种循环控制方式:For
33、NextDoLoopWhileWend,4.6.1 ForNext 循环,用途:For循环通常用于将某一程序段重复执行、且重复次数是固定的场合。For循环的重复次数可以由一个计数变量的上、下限来决定。语法:For 计数器=初值 To 终值 Step 增量 循环体Next 计数器,4.6.1 ForNext 循环,说明:For循环执行步骤如下:1将计数器设定为初值。2若增量为正、则判断计数器的值是否小于终值;若增量为负,则判断计数器的值是否大于终值。3若上述判断值为True,则执行循环体中的语句,否则跳出循环。4到Next语句,将计数器加上增量5重复步骤2至4,4.6.1 ForNext 循环,
34、例4.14:求S=1+2+3+N,其中,N由用户输入Private Sub Command1_Click()Dim N As Integer,I As Integer,S As Long N=Int(InputBox(“N=”)For I=1 To N S=S+I Next I Print S=;SEnd Sub,4.6.1 ForNext 循环,可以注意到,对于需要将某些语句执行固定次数的循环,使用ForNext循环非常方便。而For循环的次数是由循环的初值、终值和步长3个因素确定,计算公式为:循环次数=Int(终值-初值)/步长)+1一般情况下,ForNext循环需要正常结束,即循环变量到
35、达终值。但在某些情况下,可能在循环变量到达终值前需要退出循环,这可通过Exit For语句来实现。,4.6.1 ForNext 循环,例4.15:判断用户输入的自然数是否为质数。解析:1.若自然数除了1和本身外没有其他因数则该数为质数,否则为合数2.以程序判断自然数N是否为质数,可以用自2至N-1循环查找N的因数,如果没有N的因数,则N为质数;如果找到一个因数,可以退出循环得到N是合数的结论。3.根据自然数的性质:若N有因数qN 则必有因数pN,即对于合数N必定有小于N的平方根的因数。由此可精简算法,使循环的终值由N减小到Sqr(N),4.6.1 ForNext 循环,例4.15 代码Priv
36、ate Sub Command1_Click()Dim N As Long,I As Integer N=Val(InputBox(“请输入大于2的自然数:”)If N Sqr(N)Then MsgBox Str(N)+”是质数”Else MsgBox Str(N)+”是合数”End IfEnd Sub,4.6.1 ForNext 循环,ForNext循环可以嵌套使用,嵌套层数没有具体限制,其基本要求是:每个循环必须有一个唯一的循环变量;内层循环的Next语句必须在外层循环的Next语句之前,内外循环不得相互交叉。例如,下面的循环嵌套是正确的:For I=a To b For J=c to d
37、 Next JNext I下面的循环嵌套是错误的For I=a To bFor J=c To dNext INext J,4.6.1 ForNext 循环,例4.16:求 S=3!+6!+9!+12!Private Sub Command1_Click()Dim I As Integer,J As Long Dim K As Long Dim S As Long For I=3 To 12 Step 3 K=1 For J=1 To I K=K*J Next J S=S+K Next I Print S=;SEnd Sub,4.6.2 DoLoop 循环,有些时候,我们希望循环能不限次数地重复
38、执行,直到某个条件被满足为止,DoLoop循环就可以根据循环条件是True或False决定是否结束循环。DoLoop循环在语法上有以下3种形式。条件前置的条件后置的无条件式的,4.6.2 DoLoop 循环,1.条件前置的DoLoop循环用途:当需要先判断条件、再执行循环体时使用语法:Do While|Until 条件循环体Loop,4.6.2 DoLoop 循环,1.条件前置的DoLoop循环说明:1.先判断条件是否符合,决定是否要执行循环体2.判断条件的方式有While或Until两种,两者为互补关系3.使用While判断时,若条件为True,则反复执行循环体,直到条件为False时为止4
39、.使用Until判断时,若条件为False,则反复执行循环体,直到条件为True时为止,4.6.2 DoLoop 循环,例4.17:计算调和级数的和,要求精确到小数点后6位(数列的最后一项小于0.000001时停止计算),调和级数为,4.6.2 DoLoop 循环,例4.17 解法1:Private Sub Command1_Click()Dim S As Single Dim A As Single Dim T As Long T=1 A=1 S=1 Do While A=0.00001 T=T+1 A=1/T S=S+A Loop MsgBox“S=”&Format(S)End Sub,4
40、.6.2 DoLoop 循环,例4.17解法2:Private Sub Command1_Click()Dim S As Single Dim A As Single Dim T As Long T=1 A=1 S=1 Do Until A 0.00001 T=T+1 A=1/T S=S+A Loop MsgBox“S=”&Format(S)End Sub,4.6.2 DoLoop 循环,2.条件后置的DoLoop循环用途:当需要先执行循环体,再判断条件时使用语法:Do循环体Loop While|Until 条件,4.6.2 DoLoop 循环,2.条件后置的DoLoop循环说明:1.先执行循
41、环体一次,再判断Loop后的条件是否符合,以决定要不要重复执行循环体2.判断条件的方式可使用While或Until,两者为互补关系3.使用While判断时,若条件为True,则反复执行循环体,直到条件为False时为止4.使用Until判断时,若条件为False,则反复执行循环体,直到条件为True时为止,4.6.2 DoLoop 循环,例4.18:利用Do循环完成数值计算公式求,4.6.2 DoLoop 循环,例4.18 解法1:Private Sub Command1_Click()Dim S As Single,Pi As Single Dim A As Single Dim m As
42、Integer,k As Long m=1 k=1 A=1 S=1 Do k=k+2 m=-m A=m/k S=S+A Loop While Abs(A)=0.000001 Pi=4*S MsgBox“=”&Format(Pi)End Sub,4.6.2 DoLoop 循环,3.无条件的DoLoop循环用途:当程序中可能需要无穷循环时,可使用无条件的DoLoop循环语法:Do循环体Loop说明:使用此种循环可能使程序产生无穷循环,为了避免这种情况的发生,通常在循环体中要有条件语句,以在适当的时候使用Exit Do语句退出循环。,4.6.3 WhileWend 循环,用途:WhileWend循环
43、与条件前置的Do WhileLoop循环相似,要先判断条件以决定是否执行循环体。语法:While 条件循环体Wend说明:先判断条件是否成立,当条件为True时执行反复执行循环体,直到条件为False时为止。WhileWend语句是早期Basic语言的循环语句,现在它的功能已完全被Do.Loop语句所包括,所以不常使用了。,4.6.4 多重循环,通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句的循环称为多重循环。例如在循环体内含有一个循环语句的循环称为二重循环。多重循环又称作多层循环或循环嵌套。,4.6.4 多重循环,例4.19 打印“九九乘法表”,输出结构如图所示,4
44、.6.4 多重循环,解析:九九乘法表是一个9行9列的二维表,行和列都要变化且行列相互约束(第I行需要有I列),是一个典型的二重循环问题Private Sub Form_Load()Show Dim I As Integer,J As Integer For I=1 To 9 For J=1 To I Print Format(I)Next J Print:Print Next IEnd Sub,4.7 Goto型控制结构,4.7.1 GoTo 语句用途:在一个过程中改变语句的执行顺序,跳过部分代码去执行另一部分或返回已经执行过的某语句使之重复执行。语法:GoTo 标号|行号说明:1)GoTo语
45、句改变程序执行的顺序,无条件的把控制转移到“标号”或“行号”所在的程序行,并从该行开始向下执行。2)标号的命名与变量类似,但是必须以冒号结束;行号则是由数字指定,后面不跟冒号。3)GoTo语句的功能被限定在一个过程中,不能将控制跳转到另一个过程中,4.7.2 OnGoTo语句,用途:在使用GoTo型控制时要实现类似于Select Case的功能,实现多分支选择控制,就要用到OnGoTo型控制语法:On 数值表达式 GoTo 行号列表|标号列表说明:Visual Basic在遇到OnGoTo语句时,先计算数值表达式的值,并将其四舍五入得到一个整数,根据这个整数值决定跳到第几个行号或标号处执行:1)若该整数值为1则转向第一个行号或标号处执行语句,若值为2则转向第二个行号或标呈处执行语句并依此类推2)若该整数值为0或大于“行号列表”或“标号列表”中的项数,程序自动跳转到OnGoTo语句后面的一个可执行语句3)若该整数值为负数,会产生一个运行期错误,4.8 上机实验,实验内容在文本框中输入一段文字,能够对其中的单词数、字母数、数字字符及其他字符数进行统计,通过对两个“统计”按钮的单击,分别对单词个数和字符个数进行统计,运行界面如图所示。,
链接地址:https://www.31ppt.com/p-6523024.html