《第4章 基本程序设计结构》由会员分享,可在线阅读,更多相关《第4章 基本程序设计结构(55页珍藏版)》请在金锄头文库上搜索。
1、第第4章章 基本程序设计结构基本程序设计结构本章学习目标:本章学习目标:1掌握赋值语句,掌握赋值语句,InputBox()、MsgBox()函数;函数;2掌握掌握Print方法的使用;方法的使用;3理解选择结构及其特点;理解选择结构及其特点;4掌握常用的几掌握常用的几 种选择结构;种选择结构;5理解选择的构成及其执行过程;理解选择的构成及其执行过程; 6理解循环结构及其特点;理解循环结构及其特点;7掌握常用的几种循环结构;掌握常用的几种循环结构;8理解嵌套的构成及其执行过程。理解嵌套的构成及其执行过程。14.1 顺序结构程序设计顺序结构程序设计 各条语句将按照在程序中出现的位置依次执行,各条语
2、句将按照在程序中出现的位置依次执行,这就是最简单的顺序结构这就是最简单的顺序结构 24.1.1 赋值语句赋值语句赋值语句赋值语句:将右边表达式的值赋给左边的变量。:将右边表达式的值赋给左边的变量。格式:格式: Let 变量名变量名 = 表达式表达式 Let 对象名对象名.属性名属性名 = 表达式表达式通常都省略通常都省略Let关键字。关键字。功能功能:程序在执行过程中,首先计算右边表达式的值,然后将表程序在执行过程中,首先计算右边表达式的值,然后将表达式的值赋值给变量名或指定对象的属性。达式的值赋值给变量名或指定对象的属性。 例如:给整型变量例如:给整型变量x赋值赋值67: Dim x As
3、Integer Let x = 6734.1.1 赋值语句赋值语句(续续)例如:给文本框的例如:给文本框的Text属性赋值属性赋值欢迎使用欢迎使用Visual Basic 6.0!的语句表达式为:的语句表达式为:Text1.Text = 欢迎使用欢迎使用 Visual Basic 6.0!“说明:说明: (1) Let 是赋值语句的关键字,是一个可选项,通常省略是赋值语句的关键字,是一个可选项,通常省略; (2) 当表达式为数值型且与变量的精度不相同时,强制转换成左当表达式为数值型且与变量的精度不相同时,强制转换成左边变量的精度。例如:边变量的精度。例如:iA% = 4.7 iA是整型变量,是
4、整型变量,iA中中的结果是的结果是5;(3) 当表达式是数字字符串,左边变量是数值类型时,自动转换当表达式是数字字符串,左边变量是数值类型时,自动转换成数值类型再赋值;但当表达式有非数字字符或空串时,则成数值类型再赋值;但当表达式有非数字字符或空串时,则出错。出错。44.1.1 赋值语句赋值语句(续续)例如;例如; n%=“123” n中的结果是中的结果是123,与,与 n%=Val(123)效果相同效果相同 n%=1a23 出现出现“类型不匹配类型不匹配”的错误的错误(4) 赋值语句中的赋值语句中的“=”与关系运算符中的与关系运算符中的“=”的作用截然不同。的作用截然不同。 例如:例如: A
5、=7=9 其中,第一个其中,第一个“=”是赋值运算符,第二个是赋值运算符,第二个“=”是关系运算符。是关系运算符。54.1.1 赋值语句赋值语句(续续)赋值号左边只能是变量,不能是表达式、常量赋值号左边只能是变量,不能是表达式、常量。如下面的赋。如下面的赋值语句是错误的。值语句是错误的。 sin(x)=x+y 左边是表达式左边是表达式 5=sqr(s)+a+b 左边是常量左边是常量 x+y=a+b 左边是表达式左边是表达式(5) 不能在同一语句中给多个变量赋值。例如:不能在同一语句中给多个变量赋值。例如:a=b=c=1 右边两个右边两个“=”作为关系运算符处理,先进行作为关系运算符处理,先进行
6、b=c的的比的的比较,结果为较,结果为true(-1);接着进行;接着进行True=1的比较,结果为的比较,结果为False(0);最后将;最后将false的值赋给的值赋给a。64.1.1 赋值语句赋值语句(续续) (6) 当逻辑型赋值给数值型时,当逻辑型赋值给数值型时,True转换为转换为-1,False转换转换为为0;反之,当数值型赋给逻辑型时,非;反之,当数值型赋给逻辑型时,非0转换为转换为True,0转转换为换为False。 (7) 任何非字符类型的值赋给字符变量时,系统自动转换为任何非字符类型的值赋给字符变量时,系统自动转换为字符类型。字符类型。注意:注意:在在Visual Basi
7、c中,如果变量未被赋值而直接引用,则中,如果变量未被赋值而直接引用,则数值型变量的值为数值型变量的值为0,字符型变量的值为空串,字符型变量的值为空串 ,逻辑型变,逻辑型变量的值为量的值为False。74.1.2数据的输出数据的输出 Print方法可以用于在窗体、图片框和打印机以及方法可以用于在窗体、图片框和打印机以及Debug窗口上显窗口上显示数据。示数据。1.Print方法语法格式方法语法格式 对象名对象名.Print,|;其中,表达式列表是显示或打印的输出项。如果省略,则显示其中,表达式列表是显示或打印的输出项。如果省略,则显示(输输出出)一个空行。一个空行。例如例如:Form1.Prin
8、t Visual Basic 在在Form1窗体中显示窗体中显示“Visual Basic”Picture1.Print Visual Basic 在图片框在图片框Picture1中显示中显示“Visual Basic”Print Visual Basic 在当前窗体中显示在当前窗体中显示“Visual Basic”8Print方法使用说明方法使用说明使用说明:使用说明:(1) 对象名对象名. 可以是窗体名、图片框名,也可以是立即窗可以是窗体名、图片框名,也可以是立即窗口口“Debug”。若省略对象,则表示在当前窗体上输出。若省略对象,则表示在当前窗体上输出。 (2) “输出表列输出表列”是一
9、个或多个表达式,省略为空行,若是是一个或多个表达式,省略为空行,若是多个表达式可以使用逗号(,)、分号(;)或空格分开。多个表达式可以使用逗号(,)、分号(;)或空格分开。其中:其中:;(分号或空格);(分号或空格):表示光标定位在上一个显示的字符后;表示光标定位在上一个显示的字符后;,(逗号),(逗号):表示光标定位在下一个打印的开始位置处,打印:表示光标定位在下一个打印的开始位置处,打印区间隔为区间隔为14列。列。(3) Print方法具有计算和输出的双重功能,对于表达式,则方法具有计算和输出的双重功能,对于表达式,则先计算后输出。先计算后输出。例如:例如:x5;y10Print (x+y
10、)/3 输出结果为输出结果为5。9与与Print有关的一些标准函数有关的一些标准函数 可用可用Print方法配合方法配合Tab、Spc函数,使信息按指定的格式函数,使信息按指定的格式输出。输出。(1)Tab 函数函数 语法格式语法格式:Tab(n)Tab 函数函数把光标移到由参数把光标移到由参数 n 指定的位置,并从该位置输出信指定的位置,并从该位置输出信息。要输出的信息放在息。要输出的信息放在 Tab函数的后面,并用分号隔开。例函数的后面,并用分号隔开。例如:如:Print Tab(25); 1250 将在第将在第25个字符位置开始输出数值个字符位置开始输出数值1250。 10与与Print
11、有关的一些标准函数有关的一些标准函数【例例4-1】设有某班级的部分学生名单如下:姓名、年龄、籍贯、设有某班级的部分学生名单如下:姓名、年龄、籍贯、专业、黎明专业、黎明23北京计算机张华北京计算机张华22上海生物技术刘娟上海生物技术刘娟22南京经济南京经济学杨萍学杨萍23云南外语编程序显示表格中的数据。云南外语编程序显示表格中的数据。姓名姓名年龄年龄籍贯籍贯专业专业黎明黎明23北京北京计算机计算机张华张华22上海上海生物技术生物技术11与与Print有关的一些标准函数有关的一些标准函数Private Sub Form_Click() FontName = 楷体楷体_GB2312 显示输出何种字体
12、显示输出何种字体 FontSize = 12 显示输出字体大小显示输出字体大小Print 姓名姓名; Tab(8); 年龄年龄; Tab(16); 籍贯籍贯; Print Tab(24); 专业专业 PrintPrint 黎明黎明; Tab(8); 18; Tab(16); 北京北京; Tab(24); 计算机计算机Print 张华张华; Tab(8); 17; Tab(16); 上海上海; Tab(24); 生物技术生物技术Print 刘娟刘娟; Tab(8); 19; Tab(16); 南京南京; Tab(24); 经济学经济学Print 杨萍杨萍; Tab(8); 19; Tab(16)
13、; 云南云南; Tab(24); 外语外语图图4-1 程序运行结果程序运行结果End Sub12与与Print有关的一些标准函数有关的一些标准函数(2)Spc 函数函数语法格式:语法格式:Spc(n) 在在Print的输出中,的输出中,Spc函数是在输出下一个表函数是在输出下一个表达式之前首先跳过达式之前首先跳过n个空格。个空格。图4-1 程序运行结果134.1.3 用户交互函数和过程用户交互函数和过程1、InputBox()函数()函数 InputBox函数是从键盘输入数据的函数。利用它可产生一个对函数是从键盘输入数据的函数。利用它可产生一个对话框,提示用户输入数据,并返回用户所输入的内容,
14、返回话框,提示用户输入数据,并返回用户所输入的内容,返回数据为字符串。数据为字符串。 语法格式:语法格式: InputBox Prompt,Title,Default,xpos,ypos ,helpfile,context 说明:说明: (1)Prompt是一个字符串,用来指定输入框中显示的信息。是一个字符串,用来指定输入框中显示的信息。 如果如果Prompt的内容超过一行,可以在每一行之间用回车符的内容超过一行,可以在每一行之间用回车符(chr(13)、换行符、换行符(chr(10)或回车与换行的组合或回车与换行的组合(chr(13)+chr(10)将各行分割开来;将各行分割开来; 144.
15、1.3 用户交互函数和过程(续)用户交互函数和过程(续)(2)Title用来指定输入框的标题,如果缺省该参数,则用工程用来指定输入框的标题,如果缺省该参数,则用工程名作为标题;名作为标题;(3)Default是一个字符串,用来指定文本框中的缺省内容,该是一个字符串,用来指定文本框中的缺省内容,该参数缺省为空;参数缺省为空;(4)xpos和和ypos是数值表达式,必须成对出现或成对缺省。这是数值表达式,必须成对出现或成对缺省。这两个数值用来指定输入框左上角相对屏幕的位置,输入框的默两个数值用来指定输入框左上角相对屏幕的位置,输入框的默认位置是水平方向居中,垂直方向距下边大约三分之一处;认位置是水
16、平方向居中,垂直方向距下边大约三分之一处; 154.1.3 用户交互函数和过程(续)用户交互函数和过程(续)【例例4-2】单击窗体将出现如图单击窗体将出现如图4-2所示的输入框。单击所示的输入框。单击“确确定定”按钮,可将输入的内容显示在窗体上。按钮,可将输入的内容显示在窗体上。程序代码:程序代码:Private Sub Form_Click()Dim username As Stringusername = InputBox(请输入要查询的姓名,然后按确定请输入要查询的姓名,然后按确定按钮按钮, 输入提示输入提示, Wang )Print usernameEnd Sub164.1.3 用户交
17、互函数和过程(续)用户交互函数和过程(续)InputBox Prompt,Title,Default,xpos,ypos ,helpfile,context说明:说明:(1) 用户在输入文本框中输入数据后,如果单击用户在输入文本框中输入数据后,如果单击“确定确定”按钮按钮或按回车键,即表示确认,并返回包含文本框内容的字符串;或按回车键,即表示确认,并返回包含文本框内容的字符串;如果单击如果单击“取消取消”或按或按Esc键,则放弃当前输入,并返回一键,则放弃当前输入,并返回一个空字符串。个空字符串。(2) 每执行一次每执行一次InputBox函数,只能输入一个值,如果需要输函数,只能输入一个值,
18、如果需要输入多个值,则需要多次调用入多个值,则需要多次调用InputBox函数。函数。(3) InputBox函数返回值的数据类型为字符串函数返回值的数据类型为字符串。17MsgBox()函数()函数 MsgBox函数函数可以用对话框的形式向用户输出一些必要信息,还可以用对话框的形式向用户输出一些必要信息,还可以让用户在对话框内进行相应的选择,然后将该选择结果传可以让用户在对话框内进行相应的选择,然后将该选择结果传输给程序。输给程序。 语法格式:语法格式: MsgBox(prompt,buttons,title,helpfile,context) 其中:其中:title、helpfile 和和
19、context参数与参数与Inputbox函数中的同名函数中的同名参数类似参数类似 。 18MsgBox()函数()函数(1) prompt参数参数:用于显示对话框的提示信息,通知用户应:用于显示对话框的提示信息,通知用户应该做什么选择,或者直接确认信息。该参数为该做什么选择,或者直接确认信息。该参数为字符串型变字符串型变量量,最大长度为,最大长度为1024个字符,多余部分会被删掉。在内容个字符,多余部分会被删掉。在内容少于少于1024个字符时,若一行无法容纳,可以自动换行或自个字符时,若一行无法容纳,可以自动换行或自己添加回车符和换行符来决定换行位置己添加回车符和换行符来决定换行位置(字符串
20、字符串+chr(10)+chr(13)+字符串字符串)。此参数不允许省略。此参数不允许省略。 (2) buttons参数:参数:用于控制对话框中按钮的数目及形式、使用于控制对话框中按钮的数目及形式、使用的图标的样式、哪个按钮为默认按钮以及强制对该对话用的图标的样式、哪个按钮为默认按钮以及强制对该对话框做出反应的设置。该参数为整数型数值变量,具体数值框做出反应的设置。该参数为整数型数值变量,具体数值由上述四种控制的取值之和决定。由上述四种控制的取值之和决定。19MsgBox()函数()函数Button的取值见的取值见p58 (电子教材电子教材6) MsgBox(prompt,buttons,ti
21、tle,helpfile,context) 在使用在使用buttons参数时,只需在以上四类中分别选出合适参数时,只需在以上四类中分别选出合适的数值或相应的常量,的数值或相应的常量,将数值直接相加或者将常量用加号连接将数值直接相加或者将常量用加号连接即可得到即可得到buttons参数的值参数的值。在每一类中选择不同的值会产生。在每一类中选择不同的值会产生不同的效果,一般对于选择的值最好用常量表示,这样可以提不同的效果,一般对于选择的值最好用常量表示,这样可以提高程序的可读性。此参数可以省略,若省略时代表值为高程序的可读性。此参数可以省略,若省略时代表值为0,只,只显示一个显示一个OK按钮,而且
22、此按钮为默认按钮。按钮,而且此按钮为默认按钮。MsgBox函数函数的的返回值是一个返回值是一个整数数值整数数值,此数值的大小与用户选择的不同按钮,此数值的大小与用户选择的不同按钮有关。有关。20MsgBox过程过程语法格式语法格式: MsgBox prompt,buttons,title,helpfile,contextMsgBox语句中的各参数与语句中的各参数与MsgBox函数相同,由于函数相同,由于MsgBox语语句无返回值句无返回值,因而常用于简单的信息提示。,因而常用于简单的信息提示。例如:例如: MsgBox 程序运行完毕,请先存盘后再关机!程序运行完毕,请先存盘后再关机!, vbY
23、esNo + vbInformation,提示提示 214.1.4其它语句其它语句 1注释语句注释语句:在程序中加入注释在程序中加入注释,以提高程序和可读性以提高程序和可读性其语法格式为:其语法格式为: Rem 或或 说明:说明:(1) 指要包括的任何注释文本。在指要包括的任何注释文本。在Rem关键字关键字和注释内容之间要加一个空格。可以用一个英文单引号和注释内容之间要加一个空格。可以用一个英文单引号“”来代替来代替Rem关键字。关键字。(2) 如果在语句行后面使用如果在语句行后面使用Rem关键字,必需用冒号关键字,必需用冒号(:)与与语句隔开语句隔开,或者另起一行或者另起一行,rem 和注释
24、语句之间应有空格和注释语句之间应有空格。若。若用英文单引号用英文单引号“”,则在其他语句行后面不必加冒号,则在其他语句行后面不必加冒号(:)。22结束语句结束语句(END)格式格式: END功能功能:终止当前程序终止当前程序,重置所有变量重置所有变量,并关闭所有数据文件并关闭所有数据文件.说明说明: (1)通常用来结束程序的执行。)通常用来结束程序的执行。 (2) 其它用途:其它用途: End Sub 结束一个结束一个 Sub 过程过程 End Function 结束一个结束一个 Function 过程过程 End If 结束一个结束一个 If 语句块语句块 End Type 结束记录类型定义
25、结束记录类型定义 End Select 结束情况语句结束情况语句23With语句语句WithWith结构用于对一个对象或用户定义对象执行一系列的语句,结构用于对一个对象或用户定义对象执行一系列的语句,不能用一个不能用一个WithWith语句来设置多个不同的对象,其格式为:语句来设置多个不同的对象,其格式为:With With 对象对象 语句块语句块End WithEnd With使用使用WithWith结构可以对某个对象执行一系列的语句,而不用重结构可以对某个对象执行一系列的语句,而不用重复指出该对象的名称。例如,要改变窗体对象的多个属性,复指出该对象的名称。例如,要改变窗体对象的多个属性,在
26、在WithWith结构中进行属性的赋值如下:结构中进行属性的赋值如下:With Form1With Form1. .HeightHeight = 2000 = 2000 . .Width = 3000Width = 3000 .Caption = .Caption = 这是一个标题这是一个标题 End WithEnd With244.2 选择结构程序设计选择结构程序设计1 IfThen语句语句(单分支结构单分支结构) 语法格式语法格式1: If Then 语句块语句块 End If如如: A=20:B=30 If AB Then T=A:A=B: B=T End If 表达式语句块TF25If
27、Then语句语句(单分支结构单分支结构) 语法格式语法格式2: If Then 如:如:A=20:B=30 If AB Then TA:AB:BT功能:功能:当条件表达式的值为当条件表达式的值为“真真”时,则执行时,则执行Then后面的语后面的语句或语句块;否则不执行任何操作。句或语句块;否则不执行任何操作。说明:说明:表达式都是逻辑表达式,数值表达式和关系表达式被视表达式都是逻辑表达式,数值表达式和关系表达式被视为逻辑表达式的特例为逻辑表达式的特例。当表达式为数值表达式时,。当表达式为数值表达式时,Visual Basic将这个值解释为将这个值解释为True或或False,即一个为零的数值为
28、,即一个为零的数值为False,而任何非零数值都被看作,而任何非零数值都被看作True。262. IfThen Else 语句结构语句结构 (双分支结构双分支结构)语法格式语法格式1: If Then Else End If例例4-4272. IfThen Else 语句结构语句结构 (双分支结构双分支结构)语法格式语法格式2: If Then Else 功能:功能:当表达式的值为非当表达式的值为非0(True)时,执时,执行行Then后面的语句块后面的语句块1,否则执行,否则执行Else后面的语句块后面的语句块2,如图,如图4-6所示所示 283. IfThenElseIf语句语句(多分支结
29、构多分支结构) If Then ElseIf Then Else 语句块语句块 n+1 End IfT表达式1表达式2表达式n语句块1语句块2语句块n语 句 块n+1TTF F 293. IfThenElseIf语句语句(多分支结构多分支结构)说明:说明:(1) 不管有几个分支,程序执行了一个分支后,其余分支不再不管有几个分支,程序执行了一个分支后,其余分支不再执行。执行。(2) ElseIf子句的数量没有限制,可以根据需要使用任意多个子句的数量没有限制,可以根据需要使用任意多个ElseIf子句。子句。(3) 语句中的语句中的ElseIf子句和子句和Else子句都是可选项,如果省略这些子句都是
30、可选项,如果省略这些子句,则成为单分支结构。子句,则成为单分支结构。(4) If.Then.ElseIf 只是只是 If.Then.Else 的一个特例。注意,的一个特例。注意,可以使用任意数量的可以使用任意数量的 ElseIf 子句,或者一个也不用。可以有子句,或者一个也不用。可以有一个一个 Else 子句,而不管有没有子句,而不管有没有 ElseIf 子句。子句。例:例:4-6 304.2.2 Select Case4.2.2 Select Case语句语句语法格式:语法格式:Select Case Select Case 测试变量或表达测试变量或表达式式Case Case 表达式列表表达
31、式列表1 1语句块语句块1 1Case Case 表达式列表表达式列表2 2语句块语句块2 2Case ElseCase Else语句块语句块n+1n+1End SelectEnd Select功能:功能:根据根据Select Select Case Case 中的结果与各中的结果与各CaseCase子句中的值比较,决子句中的值比较,决定执行哪一组语句块。定执行哪一组语句块。如果有多个如果有多个CaseCase短语短语中的值与测试值匹配,中的值与测试值匹配,则根据自上而下判断则根据自上而下判断原则,只执行第一个原则,只执行第一个与之匹配的语句块。与之匹配的语句块。 表达式块1表达式块2表达式块
32、n语句块n+1语句块1语句块2语句块n314.2.2 Select Case语句语句说明:说明:(1)(1)情况语句的执行过程是情况语句的执行过程是: : 先对先对“测试表达式测试表达式”求值求值; ; 顺序比较顺序比较“测试表达式测试表达式”的值和的值和CaseCase子句中的子句中的“表达式列表达式列 表表”的值;的值; 找到匹配值后,则执行该找到匹配值后,则执行该CaseCase分支的语句块,把控制转移分支的语句块,把控制转移 到到End SelectEnd Select后面的语句块;后面的语句块; 如果没找到,则执行如果没找到,则执行Case ElseCase Else分支的语句块,然
33、后把控分支的语句块,然后把控 制转移到制转移到End SelectEnd Select后面的语句块。后面的语句块。(2) (2) “测试表达式测试表达式”: :数值表达式数值表达式; ;字符串表达式字符串表达式; ;为变量为变量; ;常量。常量。(3) (3) 每个每个CaseCase子句中的语句块可以是一行或多行子句中的语句块可以是一行或多行VBVB语句。语句。(4) “(4) “表达式表列表达式表列”中的表达式必须与测试表达式的类型相同。中的表达式必须与测试表达式的类型相同。(5) “(5) “表达式列表表达式列表”称为称为域值域值,可以是下列形式之一(,可以是下列形式之一(如表如表4-3
34、4-3所所示示) 32表达式列表主要形式表达式列表主要形式(1 1)常数)常数 Case 1 Case 1 或或 Case “A” Case “A” (使用数值和字符串表达(使用数值和字符串表达式)式)(2 2)表达式:)表达式:Case Case a+ba+b (可使用数值和字符串表达式)(可使用数值和字符串表达式)(3 3)表达式:)表达式: To To 表达式表达式Case 1 To 9 Case 1 To 9 Case “a” To “x” Case “a” To “x”用来指定一个范围,要求较小的值出现在用来指定一个范围,要求较小的值出现在 To To 之前之前(4 4)Is Is
35、关系表达式:关系表达式:Case Is100Case Is100可以配合比较运算符来指定可以配合比较运算符来指定一个数值范围。一个数值范围。如果没有提供,则如果没有提供,则IsIs关键字会被自动插入关键字会被自动插入334.2.3 选择结构的嵌套选择结构的嵌套 在在IFIF语句的语句的ThenThen分支和分支和ElseElse分支中可以完分支中可以完整地嵌套另一整地嵌套另一IFIF语句或语句或Select CaseSelect Case语句,同样语句,同样Select CaseSelect Case语句每一个语句每一个CaseCase分支中都可嵌套另一分支中都可嵌套另一IFIF语句或另一语句
36、或另一Select CaseSelect Case语句。下面是两种正确语句。下面是两种正确的嵌套形式:的嵌套形式:34格式格式1:IF Then . IF Then Else . End If . Else . IF Then . Else . End If . End IF35格式格式2:IF Then .Select Case Case IF Then Else . End If Case. . End Select .End IF364.2.4 4.2.4 条件函数条件函数1. IIF1. IIF函数函数 使用使用IIfIIf函数也可以实现简单的选择结构,其语法格函数也可以实现简单的选择
37、结构,其语法格式如下:式如下: result = IIFresult = IIF(条件表达式,(条件表达式,TrueTrue部分,部分,FalseFalse部分)部分) 说明:说明: (1 1)“result”result”是函数的返回值,是函数的返回值,IIFIIF函数的工作函数的工作过程如下:过程如下:当条件表达式为真时,函数返回值为当条件表达式为真时,函数返回值为TrueTrue(真)部分,当条件表达式为假时,函数返(真)部分,当条件表达式为假时,函数返回值为回值为FalseFalse(假)部分。(假)部分。 (2 2)TrueTrue部分和部分和FalseFalse部分可以是任何表达式
38、。部分可以是任何表达式。 IIfIIf函数可以用来实现简单的选择结构,和条件语句函数可以用来实现简单的选择结构,和条件语句的功能类似。的功能类似。37IIFIIF函数函数例如,有如下件例如,有如下件 语句:语句: If x = y Then If x = y Then z = x z = x Else Else z = y z = y End If End If 完全可以用下面的完全可以用下面的IIfIIf函数来代替:函数来代替: z = z = IIF(xIIF(x = y, x, y) = y, x, y) 382. Choose2. Choose函数函数 语法格式:语法格式: resul
39、t=Choose(result=Choose(整数表达式,选项列表整数表达式,选项列表) ) 说明:说明:ChooseChoose根据整数表达式的值来决定返回根据整数表达式的值来决定返回选项列表中的某个值。如果整数表达式值是选项列表中的某个值。如果整数表达式值是1 1,则,则ChooseChoose会返回选项列表中的第会返回选项列表中的第1 1个选项。个选项。如果整数表达式值是如果整数表达式值是2 2,则会返回列表中的第,则会返回列表中的第2 2个选项,以此类推。个选项,以此类推。若整数表达式的值小于若整数表达式的值小于 1 1 或大于列出的选项数目时,或大于列出的选项数目时,ChooseCh
40、oose函数返回函数返回NullNull。例:例: result = Choose(2, +, *)result = Choose(2, +, *) Print result Print result 392. Choose2. Choose函数函数例如:根据例如:根据NopNop是是1414的值,转换成的值,转换成+ +、- -、运算符,语句代码如下:运算符,语句代码如下: Op= Choose(NopOp= Choose(Nop,+,-,) ) 当值为当值为1 1时,返回字符串时,返回字符串“+”+”,然后放入,然后放入OpOp变量变量中,当值为中,当值为2 2时,返回字符串时,返回字符串
41、“-”-”,依此类推;,依此类推;当当NopNop是是1414的非整数时,系统会自动使用取的非整数时,系统会自动使用取NopNop的的整数进行再判断;若整数进行再判断;若NopNop不在不在1414之间,函数返回之间,函数返回NullNull值。值。404.3 4.3 循环结构循环结构4.3.1 Do4.3.1 Do循环结构程序设计循环结构程序设计1. 1. 当型循环结构当型循环结构 语法格式语法格式1 1: Do WhileDo While 语句块语句块11 Exit Do Exit Do 语句块语句块22LoopLoop条件表达式可以是一个逻辑表条件表达式可以是一个逻辑表达式,也可以是一个
42、关系表达达式,也可以是一个关系表达式,其值应是逻辑型。式,其值应是逻辑型。 Do Do WhileWhile和和LoopLoop应成对出现应成对出现。判断判断 “条件表达式条件表达式”是否成立,如果成立,是否成立,如果成立,则执行则执行循环体循环体,执行,执行完循环体后,再对完循环体后,再对“条件表达式条件表达式”的值进的值进行判断,以决定是否行判断,以决定是否进行下一次循环,以进行下一次循环,以此进行下去,当此进行下去,当 “条条件表达式件表达式”不成立时,不成立时,则退出循环体,执行则退出循环体,执行LoopLoop后面的语句后面的语句41例例4-94-9 :用当型循环实现:用当型循环实现
43、1+2+3+4+1001+2+3+4+100的的 运算。运算。Dim Sum As IntegerDim Sum As Integer, i As Integeri As IntegerSum = 0: i = 1Sum = 0: i = 1Do While i = 100Do While i = 100 Sum = Sum = SumSum + i + i i = i + 1 i = i + 1 设置循环控制变量的步设置循环控制变量的步长长LoopLoop42DoDo循环结构程序设计循环结构程序设计语法格式语法格式2 2:Do UntilDo Until 语句块语句块11 Exit Do E
44、xit Do 语句块语句块22LoopLoop 注注:Exit Do:Exit Do语句用于语句用于退出退出DoLoopDoLoop循环循环 判断判断 “ “条件表达式条件表达式”是是否成立,如果不成立,则否成立,如果不成立,则执行执行循环体循环体,当执行完循,当执行完循环体后,然后再对环体后,然后再对“条件条件表达式表达式”的值进行判断,的值进行判断,以决定是否进行下一次循以决定是否进行下一次循环,以此进行下去,当环,以此进行下去,当Do Do UntilUntil后面的后面的“条件表达条件表达式式”成立成立( (条件表达式为条件表达式为True)True)时,则退出循环体,时,则退出循环体
45、,执行执行LoopLoop后面的语句后面的语句 43Do Until loopDo Until loop循环循环例例4-94-9 :用:用Do UntilLoopDo UntilLoop循环实现循环实现1+2+3+4+1001+2+3+4+100的的 运算。运算。Dim Sum As IntegerDim Sum As Integer, i As Integeri As IntegerSum = 0: i = 1Sum = 0: i = 1Do Until i 100Do Until i 100 Sum = Sum = SumSum + i + i i = i + 1 i = i + 1 设置
46、循环控制变量的设置循环控制变量的步长步长LoopLoop442. 2. 直到型循环结构直到型循环结构语法格式语法格式1 1:Do Do 语句块语句块11 Exit Do Exit Do 语句块语句块22Loop WhileLoop While 首先执行一次循环体,首先执行一次循环体,然后判断然后判断Loop WhileLoop While后后面的条件,如果成立面的条件,如果成立( (条条件表达式为件表达式为True)True),则返,则返回到回到DoDo,继续执行下一,继续执行下一次循环,以此进行下去;次循环,以此进行下去;当当Loop WhileLoop While后面的后面的“条件表达式条
47、件表达式”不成立不成立( (条条件表达式为件表达式为False)False)时,时,则退出循环体,执行则退出循环体,执行Loop WhileLoop While后面的语句。后面的语句。45Do Do . . Loop WhileLoop While 例:例:Dim Sum As IntegerDim Sum As Integer, i As Integeri As IntegerSum = 0: i = 1Sum = 0: i = 1 Do Do Sum = Sum = SumSum + i + i i = i + 1 i = i + 1 设置循环控制变量的步设置循环控制变量的步长长 Loop
48、 While i = 100Loop While i = 100462. 2. 直到型循环结构直到型循环结构语法格式语法格式2 2:Do Do 语句块语句块11 Exit Do Exit Do 语句块语句块22Loop UntilLoop Until 首先执行一次循环体,然首先执行一次循环体,然后判断后判断Loop UntilLoop Until后面的后面的条件,如果不成立条件,如果不成立( (条件条件表达式为表达式为False)False),则返回,则返回到到DoDo,继续执行下一次循,继续执行下一次循环,以此进行下去;当环,以此进行下去;当Loop UntilLoop Until后面的后面
49、的“条件条件表达式表达式”成立成立( (条件表达条件表达式为式为True)True)时,则退出循时,则退出循环体,执行环体,执行Loop UntilLoop Until后后面的语句。面的语句。47DoLoop Until 循环循环例:例:Dim Sum As Integer, i As IntegerSum = 0 : i = 1 Do Sum = Sum + i i = i + 1 设置循环控制变量的步长设置循环控制变量的步长 Loop Until i 100484.3.2 While4.3.2 While循环结构程序设计循环结构程序设计语法格式:语法格式:While (While (条件表
50、达式条件表达式) ) 循环体循环体 Wend Wend功能:功能:当当WhileWhile的条件表达式的值是的条件表达式的值是TrueTrue时执行循时执行循环体内的代码,当环体内的代码,当WhileWhile后的条件表达式的值为后的条件表达式的值为FalseFalse时退出循环体。时退出循环体。说明:说明:它与它与DoLoopDoLoop语句的差别是:语句的差别是:While WendWhile Wend语句中不能使用语句中不能使用ExitExit语句跳出循环。语句跳出循环。49例:用例:用WhileWendWhileWend计算计算1 1100100的和的和Dim Sum As Integ
51、erDim Sum As Integer, i As Integeri As IntegerSum = 0: i = 1Sum = 0: i = 1 While i = 100While i = 100 Sum = Sum = SumSum + i + i i = i + 1 i = i + 1 设置循环控制变设置循环控制变量的步长量的步长 WendWend504.3.3 For4.3.3 For循环结构程序设计循环结构程序设计语法格式:语法格式:For For = To To Step Step 语句序列语句序列11 Exit For Exit For 语句序列语句序列22Next Next
52、 循环变量循环变量 循环变量循环变量是一个数是一个数值变量值变量( (简单变量简单变量); ); 初值、终值和初值、终值和步长:均是数值表步长:均是数值表达式,其值若是实达式,其值若是实数,则自动取整。数,则自动取整。当初值当初值终值时,终值时,步长为步长为正数正数,反之,反之为为负数负数,步长为,步长为1 1时,可略去不写,时,可略去不写,步长不应步长不应=0=0,否则,否则构成死循环。构成死循环。51For For 循环循环循环体循环体可以是一句或多条语句。可以是一句或多条语句。Exit forExit for:用于退出循环。用于退出循环。NextNext:其后面的:其后面的“循环循环变量
53、变量”与与ForFor语句中的语句中的“循环变量循环变量”必须相必须相同。循环次数的计算公式为:同。循环次数的计算公式为:循环次数循环次数IntInt( (终值终值- -初值初值)/)/步长步长+1+152For For 循环循环例:例: Dim Sum As IntegerDim Sum As Integer, i As Integeri As Integer Sum = 0 Sum = 0 For i=1 To 100 For i=1 To 100 Sum = Sum = SumSum + i + i Next i Next i534.3.4 4.3.4 嵌套循环嵌套循环多重循环也称为循环
54、嵌套。由于能构成循环结构多重循环也称为循环嵌套。由于能构成循环结构的语句有多种,它们之间可以互相嵌套,所以多的语句有多种,它们之间可以互相嵌套,所以多重循环的形式多种多样。但要注意:重循环的形式多种多样。但要注意:(1) (1) 每一种循环语句中的开始部分与结束部分必每一种循环语句中的开始部分与结束部分必须配对使用。须配对使用。(2) (2) 多层循环的循环体可以一层套一层,但不能多层循环的循环体可以一层套一层,但不能互相交叉。互相交叉。(3) (3) 不能从循环体外转向循环体内,也不能从外不能从循环体外转向循环体内,也不能从外循环转向内循环,反之则可以。循环转向内循环,反之则可以。(4) (
55、4) 内循环变量与外循环变量不能同名。内循环变量与外循环变量不能同名。54【例例4-134-13】打印九九乘法表。打印九九乘法表。程序代码:程序代码:Private Sub Private Sub Form_clickForm_click()() Dim i, j As Single Dim i, j As Single ClsClsPrint Tab(50); Print Tab(50); 九九乘法表九九乘法表 For i = 1 To 9For i = 1 To 9For j = 1 To iFor j = 1 To iPrint j; * ; i; = ; i * j;Print j; * ; i; = ; i * j;Next jNext jPrint Print 控制换行控制换行Next iNext iEnd SubEnd Sub55