《第3章程序流程控制》由会员分享,可在线阅读,更多相关《第3章程序流程控制(57页珍藏版)》请在金锄头文库上搜索。
1、第第3章章 程序流程控制程序流程控制第第3 3章章 程序流程控制程序流程控制3.1 VB程序设计中的常用语句3.2 分支结构3.3 循环结构3.4 Go to 语句3.5 程序调试3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句计算机程序的执行控制流程有计算机程序的执行控制流程有3 3种基本结构种基本结构: : 顺序结构顺序结构 分支结构分支结构 循环结构循环结构 顺序结构顺序结构: :按程序语句的顺序依次地执行。按程序语句的顺序依次地执行。顺序结构主要语句:赋值语句、输入、输出语句和暂停语句。顺序结构主要语句:赋值语句、输入、输出语句和暂停语句。顺顺序序结结构构流流程程图图程
2、序语句程序语句1程序语句程序语句2赋值语句赋值语句(1 1)赋值作用:把一个表达式的值赋给一个变量或控件的一个)赋值作用:把一个表达式的值赋给一个变量或控件的一个属性。属性。例:例:s=100s=100 k=k+1 k=k+1 stst$=$=“abcdabcd” command1.caption= command1.caption=“确定确定”3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句(2 2)赋值与逻辑等号)赋值与逻辑等号 等号既可作为赋值号,也可表示等价关系。等号既可作为赋值号,也可表示等价关系。(3 3)赋值相容)赋值相容 VBVB对某些数据类型提供了自动转换机制
3、,强制变量转换为对某些数据类型提供了自动转换机制,强制变量转换为适当的数据类型。适当的数据类型。例:例: dim dim intx%,stryintx%,stry$ $ strystry= =“100.23100.23” intxintx=20=20 ? ? intx+stryintx+stry 结果为:结果为:120.23120.233.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句例:例: Dim x%, y!Dim x%, y! y = 100.23 y = 100.23 x = y x = y Print x Print x 结果为:结果为:100100 将实型数据赋给整
4、型变量会出现什么样的结果呢?将实型数据赋给整型变量会出现什么样的结果呢?3.1.23.1.23.1.23.1.2、 VBVB从键盘输入数据提供了从键盘输入数据提供了inputboxinputbox和和msgboxmsgbox两个函数。两个函数。1.Inputbox1.Inputbox函数函数格式:格式:inputboxinputbox( (提示字符串提示字符串 ,标题字符串,标题字符串,缺省值,缺省值,x x坐标值坐标值 ,y y坐标值坐标值 ) )提示字符串需多行显示时,可在每行行尾使用回车符提示字符串需多行显示时,可在每行行尾使用回车符chr(13)chr(13)和和换行符换行符chr(1
5、0)chr(10)或者使用或者使用VbCrlfVbCrlf换行;换行; 3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句数据输入数据输入 要求如下:要求如下: (1)(1)提示信息为:请输入年龄提示信息为:请输入年龄 (2)(2)标题为:年龄数据输入标题为:年龄数据输入 (3)(3)默认值为:默认值为:2020 (4)x (4)x坐标:坐标:25002500 (5)y (5)y坐标:坐标:350035003.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句inputboxinputbox命令练习命令练习:【例例3-13-1】输入长方体长、宽、高,计算并输出其体积。输
6、入长方体长、宽、高,计算并输出其体积。Private Sub Command1_Click()Private Sub Command1_Click()Dim a As Single Dim a As Single 长长Dim b As Single Dim b As Single 宽宽Dim c As Single Dim c As Single 高高Dim v As Double Dim v As Double 体积体积a = a = InputBoxInputBox(长方体的长:长方体的长:)b = b = InputBoxInputBox(长方体的宽:长方体的宽:)c = c = Inp
7、utBoxInputBox(长方体的高:长方体的高:)v = a * b * cv = a * b * cPrint Print 体积为:体积为:, v, vEnd Sub End Sub 3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句2.Msgbox2.Msgbox函数函数格式:格式:msgboxmsgbox( (提示字符串提示字符串 ,按钮设置值,按钮设置值,标题字符串,标题字符串 ) )作用:用于接收用户简单的选择信息。作用:用于接收用户简单的选择信息。 MsgboxMsgbox函数在对话框中显示消息,等待用户单击按钮,并函数在对话框中显示消息,等待用户单击按钮,并且返
8、回一个整型值,告诉程序用户单击了哪个按钮。且返回一个整型值,告诉程序用户单击了哪个按钮。3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句MsgboxMsgbox函数练习函数练习 要求如下:要求如下: (1)(1)提示信息为:函数练习提示信息为:函数练习 (2)(2)有两个按钮:确定和取消有两个按钮:确定和取消 (3)(3)显示图标为:显示图标为:! ! (4) (4)第一个按钮为默认值第一个按钮为默认值 (5)(5)标题为:提示信息标题为:提示信息 (6)(6)如果用户按下确定屏显:你好如果用户按下确定屏显:你好 如果用户按下取消屏显:再见如果用户按下取消屏显:再见3.1 VB
9、3.1 VB程序设计中的常用语句程序设计中的常用语句 a = a = MsgBoxMsgBox(函数练习函数练习, 1 + 48 + 0, , 1 + 48 + 0, 提示信息提示信息) If a = 1 Then Print If a = 1 Then Print 你好你好 Else Print Else Print 再见再见 【例例3-23-2】 输入一个正数,并由用户决定是否求其平方根。输入一个正数,并由用户决定是否求其平方根。Private Sub Command1_Click()Private Sub Command1_Click()Dim a As StringDim a As S
10、tringDim Dim fhfh as Integer as Integera = a = Val(InputBoxVal(InputBox(请输入一个正数请输入一个正数)fhfh = = MsgBoxMsgBox(对对 + a + + a + 求平方根吗?求平方根吗?, , vbYesNovbYesNo + + vbQuestionvbQuestion + vbDefaultButton1) + vbDefaultButton1)If If fhfh = = vbYesvbYes Then Then Print Print Sqr(aSqr(a) )End IfEnd IfEnd SubE
11、nd Sub3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句3. 3. MsgBoxMsgBox消息框语句消息框语句 如果不需要返回值,如果不需要返回值,MsgBoxMsgBox可写成语句形式,格式如下:可写成语句形式,格式如下: MsgBoxMsgBox 提示字符串提示字符串 ,按钮设置值,按钮设置值,标题字符串,标题字符串 该语句用于简单的信息,例如:该语句用于简单的信息,例如: MsgBoxMsgBox 数据输入错误,请重新输入!数据输入错误,请重新输入!, , , , 错误提示错误提示 3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句格式格式: : 对象
12、对象 Print Print 输出项列表输出项列表 (1 1)程序中往往使用无输出项列表的)程序中往往使用无输出项列表的PrintPrint换行;换行;(2 2)对象可以是窗体、图片框、打印机()对象可以是窗体、图片框、打印机(PrinterPrinter)等。若省略)等。若省略“对象对象. .”则默认前窗体上输出;则默认前窗体上输出;(3 3)可在)可在VBVB的立即窗口中使用的立即窗口中使用PrintPrint;(4 4)输出项列表由输出项和分隔符构成,分隔符可以是空格、)输出项列表由输出项和分隔符构成,分隔符可以是空格、“;”或或“,”。采用空格或。采用空格或“;” ;(5 5)输出项的
13、组成)输出项的组成: : Spc(n)/Tab(nSpc(n)/Tab(n) ) 表达式表达式Spc(nSpc(n) )表示在表达式前输出表示在表达式前输出n n个空格;个空格;Tab(nTab(n) )表示表达式在第表示表达式在第n n列上输出无参数,将插入点定位在下一个打印区列上输出无参数,将插入点定位在下一个打印区的起始位置。的起始位置。 。(6 6)PrintPrint若以若以“,”或或“;”结束,表示程序中的下一个结束,表示程序中的下一个PrintPrint方法将方法将从当前行的当前位置继续输出,否则将换行输出。从当前行的当前位置继续输出,否则将换行输出。3.1 VB3.1 VB程序
14、设计中的常用语句程序设计中的常用语句输出数据的输出数据的printprint方法方法PrintPrint应用举例应用举例: :Form1.Print Form1.Print 沈阳农业大学沈阳农业大学 Picture1.Print Picture1.Print 沈阳农业大学沈阳农业大学 Print Print 沈阳农业大学沈阳农业大学 Printer.printPrinter.print “沈阳农业大学沈阳农业大学”3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句例例: :Print Print 沈阳沈阳; Tab(20); ; Tab(20); 农大农大 Print Print
15、 沈阳沈阳; Tab; ; Tab; 农大农大 Print Print 沈阳沈阳; Spc(10); ; Spc(10); 农大农大“Print Print 沈阳沈阳, , 农大农大 Print Print 沈阳沈阳; ; 农大农大 【例例3-33-3】输入长方体的长、宽、高,求其体积。请对比三个输入长方体的长、宽、高,求其体积。请对比三个PrintPrint语句的输出效果(输出结果略)。语句的输出效果(输出结果略)。 Private Sub Command1_Click()Private Sub Command1_Click()Dim a!, b!, c!, v# Dim a!, b!, c
16、!, v# a = a = InputBoxInputBox(长方体的长:长方体的长:)b = b = InputBoxInputBox(长方体的宽:长方体的宽:)c = c = InputBoxInputBox(长方体的高:长方体的高:)v = a * b * cv = a * b * cPrint Print 长长:, a, :, a, 宽宽:, b, :, b, 高高:, c, :, c, 的长方体的体积为:的长方体的体积为:, v, vPrint Print 长长:; a, :; a, 宽宽:; b, :; b, 高高:; c, :; c, 的长方体的体积为:的长方体的体积为:; v;
17、 vPrint Print 长长:; a; :; a; 宽宽:; b; :; b; 高高:; c; :; c; 的长方体的体积为:的长方体的体积为:; v; vEnd SubEnd Sub3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句Print Print 配合配合格式函数格式函数FormatFormat,按指定的格式输出数据。,按指定的格式输出数据。函数格式为:函数格式为:FormatFormat(表达式(表达式 ,格式字符串,格式字符串 )格式字符格式字符含义含义数值示例数值示例使用格式化字符串使用格式化字符串显示结果显示结果0 0数字位数字位12345.67812345
18、.6780000000.00000000000.0000 “000.00000.000012345.67800012345.678012345.6812345.68# #数字位数字位12345.67812345.678#.#.#.#.#12345.67812345.67812345.6812345.68. .小数点小数点123451234500000.0000000.0012345.0012345.00, ,千位分隔符千位分隔符12345.67812345.678#,#.0000#,#.000012,345.678012,345.6780% %数值乘数值乘100100,后加,后加% %1.29
19、31.293#.00%#.00%129.30%129.30%$ $数值前强加数值前强加$ $12345.67812345.678$#.#$#.#$12345.7$12345.7+ +数值前强加数值前强加+ +12345.67812345.678+#.#+#.#+12345.7+12345.7- -数值前强加数值前强加- -12345.67812345.678-#.#-#.#-12345.7-12345.7E+E+用指数形式表示用指数形式表示12345.67812345.678 #.#E+#.#E+# #.#E+# #.#E+#12.3E+312.3E+31235E+41235E+4E-E-与与
20、E+E+相似相似12345.67812345.6780.123456780.12345678#.#E-#.#E-#.#E-#.#E-#1.2E41.2E41235E-11235E-1【例例3-4】用窗体事件过程试验数据的格式化输出。用窗体事件过程试验数据的格式化输出。privateprivate Sub Sub Form_ClickForm_Click()() Print Format(1234.6, 000,000.00) Print Format(1234.6, 000,000.00) Print Format(1234.678, #,#.#) Print Format(1234.678,
21、 #,#.#) Print Format(1234.6, #,#0.00) Print Format(1234.6, #,#0.00) Print Format(1234.6, $#,#0.00) Print Format(1234.6, $#,#0.00) Print Format(1234.6, -#,#0.00) Print Format(1234.6, -#,#0.00) Print Format(0.123, 0.00%) Print Format(0.123, 0.00%) Print Format(1234.6, 0.00E+00) Print Format(1234.6, 0.
22、00E+00) Print Format(0.1234567, 0.00E-00) Print Format(0.1234567, 0.00E-00)End SubEnd Sub3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句 注释语句的前缀是一个单撇号或注释语句的前缀是一个单撇号或remrem 暂停语句暂停语句:stop:stop 结束语句结束语句:end:end3.1 VB3.1 VB程序设计中的常用语句程序设计中的常用语句注释、暂停和程序结束注释、暂停和程序结束格式格式:If :If 条件条件 then then 语句序列语句序列 else else 语句序列语句序列 要
23、求要求: :在一行内书写完毕,(在一行内书写完毕,(255255个字符限度个字符限度) )3.2 3.2 分支结构分支结构单行结构条件语句单行结构条件语句【例例3-5】输入一个数,若其大于等于输入一个数,若其大于等于0 0,则输出其平方根。,则输出其平方根。Private Sub Command1_Click()Private Sub Command1_Click()Dim a!Dim a!a = a = Val(InputBoxVal(InputBox(输入一个数输入一个数)If a = 0 Then Print a & If a = 0 Then Print a & 的平方根是:的平方根是
24、: & & Sqr(aSqr(a) )End SubEnd Sub【例例3-6】 : : 输入一个数,若其大于等于输入一个数,若其大于等于0 0,则输出其算术,则输出其算术平方根,若输入的数据小于零,则显示数据输入有误的信平方根,若输入的数据小于零,则显示数据输入有误的信息。息。Private Sub Command1_Click()Private Sub Command1_Click()Dim a!Dim a!a = a = Val(InputBoxVal(InputBox(输入一个数输入一个数)If a = 0 Then Print a & If a = 0 Then Print a &
25、的平方根是:的平方根是: & & Sqr(aSqr(a) ) Else Print Else Print 数据输入有误!数据输入有误! End SubEnd Sub3.2 3.2 分支结构分支结构3.2.23.2.23.2.23.2.2、块结构条件语句、块结构条件语句、块结构条件语句、块结构条件语句格式格式: :If If 条件条件1 then 1 then 语句序列语句序列1 1 elseifelseif 条件条件2 then2 then 语句序列语句序列2 2 End ifEnd if3.2 3.2 分支结构分支结构块结构条件语句块结构条件语句简单的块结构格式简单的块结构格式: :If I
26、f 条件条件1 then 1 then 语句序列语句序列1 1 else else 语句序列语句序列2 2End ifEnd if块块结结构构流流程程图图条件?条件?语句序列语句序列1语句序列语句序列2END IF后续语句后续语句YESNO块结构输写注意块结构输写注意: :X=1X=1If x0 then If x0 then Print Print “沈阳沈阳”Print Print “农大农大”End ifEnd ifX=1X=1If x0 then If x0 then Print Print “沈阳沈阳”:Print :Print “农大农大”End ifEnd if(1 1)对于块结
27、构必须以)对于块结构必须以end if end if 结束。结束。(2 2)单行语句完全可以用块结构来写。)单行语句完全可以用块结构来写。3.2 3.2 分支结构分支结构在在VBVB中,数值表达式看成是逻辑表达式的特列,非中,数值表达式看成是逻辑表达式的特列,非0 0表示真,表示真,0 0表示假。表示假。例:例: dim dim a%,ba%,b% % a=4:b=3 a=4:b=3 if if a+ba+b then then print print “你好你好” ElseElse Print Print “再见再见” End ifEnd if3.2 3.2 分支结构分支结构【例例3-73-
28、7】 实现分段函数。实现分段函数。PrivatePrivate Sub Command1_Click()Sub Command1_Click()Dim x As Single, y As SingleDim x As Single, y As Singlex = x = Val(InputBoxVal(InputBox(输入输入x)x)If x = 3 Then If x 3x3 x=33.2 3.2 分支结构分支结构y=x3 x=3x2+x-2 3x=6x+100 6x83.2 3.2 分支结构分支结构【例例3-83-8】使用使用 简单块结构简单块结构IfIf语句嵌套实现下面的分段函数。语句
29、嵌套实现下面的分段函数。Private Sub Command1_Click()Private Sub Command1_Click()Dim x As Single, y As SingleDim x As Single, y As Singlex = x = InputBoxInputBox(输入输入x)x)If x = 3 Then If x = 3 Then x=3 x3 x3 If x = 6 Then If x = 6 Then 3x=6 3x6 x6 If x = 8 Then 6x=8 If x = 8 Then 6x8 Else x8 y = x y = xEnd IfEnd
30、 If End If End IfEnd IfEnd IfPrint x; yPrint x; yEnd Sub End Sub 3.2 3.2 分支结构分支结构Private Sub Command1_Click()Private Sub Command1_Click()Dim x As Single, y As SingleDim x As Single, y As Singlex =x =valval(InputBoxInputBox(输入输入x)x))If x = 3 Then If x = 3 Then x=3x=3 y = x 3 y = x 3ElseIfElseIf x = 6
31、 Then x = 6 Then 3x=63x=6y = x 2 + x - 2y = x 2 + x - 2ElseIfElseIf x = 8 Then x = 8 Then 6x=86x8x8y = xy = xEnd IfEnd IfPrint x; yPrint x; yEnd SubEnd Sub【例例3-93-9】 用块结构条件语句改写上例。用块结构条件语句改写上例。3.2 3.2 分支结构分支结构格式格式: :Select case Select case 测试表达式测试表达式 case case 表达式列表表达式列表1 1 语句块语句块 case case 表达式列表表达式列
32、表2 2 语句块语句块 case else case else 语句块语句块End selectEnd select3.2 3.2 分支结构分支结构情况语句情况语句注意:注意:Case 2,4,6,8 Case 2,4,6,8 意思意思: :测试表达式的值等于:测试表达式的值等于:2 2 或或4 4 或或6 6或或8 8Case 1 to 10Case 1 to 10意思:指定域值的范围。意思:指定域值的范围。Case is10Case is10意思:测试表达式满足条件。意思:测试表达式满足条件。3.2 3.2 分支结构分支结构【例例3-103-10】 用情况语句改写上例程序。用情况语句改写上
33、例程序。Private Sub Command1_Click()Private Sub Command1_Click()Dim x As Single, y As SingleDim x As Single, y As Singlex = x = InputBoxInputBox(输入输入x)x)Select Case xSelect Case xCase Is = 3 Case Is = 3 x=3x=3 y = x 3 y = x 3Case Is = 6 Case Is = 6 3x=63x=6 y = x 2 + x - 2 y = x 2 + x - 2Case Is = 8 Cas
34、e Is = 8 6x=86x8x8y = xy = xEnd SelectEnd SelectPrint x; yPrint x; yEnd SubEnd Sub3.2 3.2 分支结构分支结构课堂练习:课堂练习: 从键盘上输入一个从键盘上输入一个0-60-6的整数,然后在文本框中显示用的整数,然后在文本框中显示用英文表示的星期几,如输入英文表示的星期几,如输入0 0,显示,显示 “sundaysunday”,输入,输入1 1,显,显示示“mondaymonday”等。等。3.2 3.2 分支结构分支结构【例例3-113-11】 判断输入字符是数字字符、字母还是其它字符。判断输入字符是数字字
35、符、字母还是其它字符。Private Sub Command1_Click()Private Sub Command1_Click()Dim Dim StrCStrC As String*1 As String*1StrCStrC = = InputBoxInputBox(输入一个字符输入一个字符)Select Case Select Case StrCStrCCase a To z, A To ZCase a To z, A To ZMsgBoxMsgBox 字母!字母! Case 0 To 9Case 0 To 9MsgBoxMsgBox 数字字符!数字字符! Case ElseCase
36、ElseMsgBoxMsgBox 其它字符!其它字符! End SelectEnd SelectEnd SubEnd Sub3.2 3.2 分支结构分支结构课堂练习:课堂练习:用用select case select case 语句实现如下要求。语句实现如下要求。 计算计算Y Y的值的值: :当当X0X0时,时, Y=2*XY=2*X当当0x20x2时,时,Y=X*2Y=X*2当当2x32x3时,时, Y=1-XY=1-X当当3x63x6时,时, Y=(X+5)*2Y=(X+5)*2当当x6x6时,时, Y=X*(X+5Y=X*(X+5)3.2 3.2 分支结构分支结构Dim x!, y!Di
37、m x!, y!x = x = InputBox(xInputBox(x=)=)Select Case xSelect Case xCase Is 0Case Is 0y = 2 * xy = 2 * xCase Is 2Case Is 2y = x 2y = x 2Case Is 3Case Is 3y = 1 - xy = 1 - xCase Is 6Case Is 6y = (x + 5) 2y = (x + 5) 2Case ElseCase Elsey = x * (x + 5)y = x * (x + 5)End SelectEnd SelectPrint yPrint y 答案答
38、案答案答案: :格式格式: : While While 循环条件循环条件 语句序列语句序列 Wend Wend 3.3 3.3 循环结构循环结构while wend 语句语句条件?条件?YES循环体循环体Wend的后续语句的后续语句NO循循环环结结构构流流程程图图读程序写出结果。读程序写出结果。Dim x% Dim x% X=1X=1WHILE X50WHILE X50?X?XX=X*3X=X*3wendwend3.3 3.3 循环结构循环结构 答案答案答案答案: :1 13 39 927273.3 3.3 循环结构循环结构读程序写结果:读程序写结果:Dim y%Dim y%Y=0Y=0whi
39、le y=40while y=40Y=y+1Y=y+1If y/7=int(y/7) then ?yIf y/7=int(y/7) then ?ywendwend3.3 3.3 循环结构循环结构 答案答案答案答案: :7 714142121282835353.3 3.3 循环结构循环结构【例例3-123-12】输出输出1 1100100之间的所有整数。之间的所有整数。程序如下:程序如下:Private Sub Command1_Click()Private Sub Command1_Click()Dim i%Dim i%i = 1i = 1While i = 100While i = 100P
40、rint iPrint ii = i + 1i = i + 1WendWendEnd SubEnd Sub【例例3-133-13】求求1 1100100之间所有整数之和。之间所有整数之和。【例例3-143-14】求求n n!,即求!,即求1 12 23 3n n。 3.3 3.3 循环结构循环结构【例例3-153-15】 从键盘输入一串字符,分别统计其中的数字字符、字从键盘输入一串字符,分别统计其中的数字字符、字母和其它字符的个数母和其它字符的个数( (采用采用% %作为输入字符的结束标志作为输入字符的结束标志) ) Dim Dim strCstrC As String * 1 As Stri
41、ng * 1Dim Dim intSintS%, %, intNintN%, %, intQintQ% % intSintS = 0: = 0: intNintN = 0: = 0: intQintQ = 0 = 0 strCstrC = = InputBoxInputBox(输入一个字符输入一个字符) ) While While strCstrC % % Select Case Select Case strCstrCCase a To z, A To Z Case a To z, A To Z intSintS = = intSintS + 1 + 1Case 0 To 9Case 0 T
42、o 9intNintN = = intNintN + 1 + 1Case ElseCase ElseintQintQ = = intQintQ + 1 + 1End SelectEnd SelectstrCstrC = = InputBoxInputBox(输入一个字符输入一个字符)WendWendPrint Print 输入字母字符:输入字母字符:; ; intSintS; ; 个个 Print Print 输入数字字符:输入数字字符:; ; intNintN; ; 个个 Print Print 输入其它字符:输入其它字符:; ; intQintQ; ; 个个 3.3 3.3 循环结构循环结
43、构 1.1.先判断条件形式的先判断条件形式的DoDolooploop语句语句 格式格式: : do do while|untilwhile|until 循环条件循环条件 语句序列语句序列 looploop3.3 3.3 循环结构循环结构Do Do loop loop 语句语句【例【例3-163-16】求某个数的所有约数。求某个数的所有约数。Dim n%, i%Dim n%, i%n = n = Val(InputBoxVal(InputBox(请输入一个数请输入一个数)i = 1i = 1Print n; Print n; 的约数有的约数有:;:;Do While i = n Do While
44、 i = n If n Mod i = 0 Then If n Mod i = 0 Then 如果如果n n可以被可以被i i整除整除,i,i为为n n的约数的约数Print i;Print i; End If End If i = i + 1 i = i + 1Loop Loop 3.3 3.3 循环结构循环结构【例例3-173-17】求自然常数求自然常数e=1+1/1e=1+1/1!+1/2+1/2!+1/3+1/3!+ +1/n+1/n!+ +的近似值(误差小于的近似值(误差小于0.0000010.000001) Dim n%, e As Double, t As Double, s A
45、s Dim n%, e As Double, t As Double, s As DoubleDoublen = 1n = 1s = 1s = 1t = 1t = 1e = 0e = 0Do Until t 0.000001Do Until t 100 Do While a 100 b = b + 1 b = b + 1 a = a - 1 a = a - 1LoopLoopPrint b=; b Print b=; b End SubEnd Sub Private Sub Command2_Click() Private Sub Command2_Click()Dim a As Intege
46、rDim a As IntegerDim b As IntegerDim b As Integerb = 0b = 0a = 100a = 100DoDo b = b + 1 b = b + 1 a = a - 1 a = a - 1Loop While a 100 Loop While a 100 Print b=; b Print b=; b End SubEnd Sub比较如下两个程序。比较如下两个程序。3.3 3.3 循环结构循环结构3.3.43.3.43.3.43.3.4、forfornextnext语句通常用于循环次数已知的程序结构中。语句通常用于循环次数已知的程序结构中。格式格式
47、: : for for 变量变量= =初始值初始值 to to 终值终值 step step 步长步长 语句序列语句序列 exit forexit for 语句序列语句序列 Next Next 变量变量3.3 3.3 循环结构循环结构For For next next 语句语句【例例3-183-18】 用用forfor循环求循环求N N的阶乘。的阶乘。 Dim i%, n%, s&Dim i%, n%, s&n = n = InputBoxInputBox(输入输入n n值值)s = 1s = 1For i = 1 To nFor i = 1 To n s = s * i s = s * iN
48、ext iNext iPrint n; Print n; !=1*2*.*;n; =; s=1*2*.*;n; =; s小结:小结: 在在VBVB的各种循环语句中,的各种循环语句中,Do While Do While Loop Loop 和和 ForFor最为常用。最为常用。Do While Do While LoopLoop的功能很强,能完成各种各样的循环操作;而的功能很强,能完成各种各样的循环操作;而ForFor语句用于循环次数已知的计数循环,方便又简洁。语句用于循环次数已知的计数循环,方便又简洁。3.3 3.3 循环结构循环结构无条件形式无条件形式: :Exit doExit doExi
49、t forExit for条件形式条件形式: :If If 条件条件 then exit dothen exit doIf If 条件条件 then exit forthen exit for3.3 3.3 循环结构循环结构退出循环退出循环【例例3-193-19】 判断数判断数n n是否为素数(质数)。是否为素数(质数)。Dim i%, n%Dim i%, n%n = n = Val(InputBoxVal(InputBox(请输入一个数请输入一个数)For i = 2 To n - 1For i = 2 To n - 1If n Mod i = 0 ThenIf n Mod i = 0 Th
50、enExit ForExit ForEnd IfEnd IfNextNextIf i = n ThenIf i = n ThenPrint n; Print n; 是素数是素数 ElseElsePrint n; Print n; 不是素数不是素数 End IfEnd If3.3 3.3 循环结构循环结构3.3.63.3.63.3.63.3.6、嵌套循环、嵌套循环、嵌套循环、嵌套循环分析运行结果:分析运行结果:Dim Dim i,ji,jFor i=1 to 3For i=1 to 3 for j=5 to 6 for j=5 to 6 Print Print i,ji,j Next j Nex
51、t jNext iNext i3.3 3.3 循环结构循环结构嵌套循环嵌套循环【例例3-20】在窗体上输出以下形式的星星阵列在窗体上输出以下形式的星星阵列: : * * * * * * 3.3 3.3 循环结构循环结构3.4 Go to 3.4 Go to 语句语句语句格式:语句格式:Go To Go To 说明:说明:(1 1)Go ToGo To语句无条件转移到标号或行号指定的程序语句无条件转移到标号或行号指定的程序行。行。Go ToGo To本身是无条件转移语句,但在实际应用时,本身是无条件转移语句,但在实际应用时,都是要求在某一条件下,才发生转移,所以都是要求在某一条件下,才发生转移,
52、所以Go ToGo To语语句通常与条件语句结合使用;句通常与条件语句结合使用;(2 2)标号是一个字符序列,置于转移的目的语句的)标号是一个字符序列,置于转移的目的语句的前面,起标识作用。转移的目的语句的格式应为:前面,起标识作用。转移的目的语句的格式应为: 标号:标号: (3 3)Go To Go To 语句只能转移到同一过程内的标号或行语句只能转移到同一过程内的标号或行号处。另外使用号处。另外使用Go ToGo To语句会造成程序结构不清晰、语句会造成程序结构不清晰、可读性差,所以在程序设计中应尽量少用或不用可读性差,所以在程序设计中应尽量少用或不用Go Go ToTo语句。语句。3.5 3.5 程序调试程序调试查找和修改错误的过程称为程序调试。查找和修改错误的过程称为程序调试。1 1错误类型错误类型VBVB的错误可分为的错误可分为语法错误语法错误、运行错误运行错误和和逻辑错误逻辑错误3 3种。种。2. 2. 调试工具调试工具VBVB提供了一系列调试工具,包括提供了一系列调试工具,包括设置断点设置断点、逐语句逐语句执行执行、逐过程执行逐过程执行和和调试窗口调试窗口。