1、结构化程序设计结构化程序设计 基本思想:是按基本思想:是按自顶向下逐步求精自顶向下逐步求精的方式,由三的方式,由三种标准控制结构反复嵌套来构造一个程序种标准控制结构反复嵌套来构造一个程序 1.自顶向下和逐步求精自顶向下和逐步求精的设计方法:将一个复杂的设计方法:将一个复杂任务按照功能进行任务按照功能进行拆分拆分,划分为大小适当、功能明,划分为大小适当、功能明确、具有一定独立性、并容易实现的模块,从而把确、具有一定独立性、并容易实现的模块,从而把一个复杂的系统的设计转变为多个简单模块的设计一个复杂的系统的设计转变为多个简单模块的设计 2.单入单出单入单出的控制结构:每个模块只有一个入口的控制结构
2、:每个模块只有一个入口和一个出口,每个模块内部均用和一个出口,每个模块内部均用顺序、选择、循环顺序、选择、循环结构来描述结构来描述 结构化程序易于阅读,而且可提高系统的可修改结构化程序易于阅读,而且可提高系统的可修改性和可维护性性和可维护性1。第第4章章 VB控制结构控制结构4.1 顺序结构顺序结构4.2 选择结构选择结构4.3 循环结构循环结构4.4 其他辅助语句其他辅助语句2。4.1 顺序结构顺序结构 按照语句出现的次序,按照语句出现的次序,自上而下自上而下顺序执行。顺序执行。主要语句主要语句 赋值语句赋值语句 输入输入/输出语句输出语句语句语句1语句语句2语句语句n3。4.1.1 赋值语
3、句赋值语句 2种格式:种格式:给变量赋值:给变量赋值:变量名表达式变量名表达式 设定属性:设定属性:控件名控件名.属性名属性名=表达式表达式说明:说明:(1)“=”(1)“=”表示赋值表示赋值,先计算右边表达式的值,再将先计算右边表达式的值,再将此值赋给变量或对象属性此值赋给变量或对象属性(2)(2)变量和属性可多次赋值,新值会取代旧值变量和属性可多次赋值,新值会取代旧值 举例:举例:x=10:x=-34:x=“wer”n=n+1 常用于计数常用于计数sum=sum+x 常用于求和常用于求和4。赋值语句的格式和作用赋值语句的格式和作用(3)“=”有两个意义:有两个意义:n赋值号、关系运算符赋值
4、号、关系运算符n形式相同,系统会根据所处的位置判断符号的意义形式相同,系统会根据所处的位置判断符号的意义n注意:注意:a=b 和和 b=a(4)赋值号的左边只能是赋值号的左边只能是变量或控件属性变量或控件属性,不能是常量,不能是常量和表达式和表达式(5)不能在一个赋值语句中同时给多个变量赋值不能在一个赋值语句中同时给多个变量赋值本章目录本章目录错误的赋值语句:错误的赋值语句:Now()=x+y 左边是表达式左边是表达式(函数函数)5=sqr(s)+x+y 左边是常量左边是常量 x+y=3 左边是表达式左边是表达式正确的写法:正确的写法:x=5:y=5:z=5 错误的写法:错误的写法:x=y=z
5、=55。赋值号两边数据类型不同时赋值号两边数据类型不同时 原则:原则:进行转换,进行转换,向左边看齐向左边看齐 1、当表达式为、当表达式为数值型数值型并与变量精度不同时,需强制并与变量精度不同时,需强制转换成左边变量的精度转换成左边变量的精度举例:举例:n%=3.5 n为整型,转换时四舍五入,为整型,转换时四舍五入,n=4 2、当表达式是、当表达式是数字字符串数字字符串,左边变量是数值类型,左边变量是数值类型,自动转换成数值类型再赋值。如果表达式有非数字字自动转换成数值类型再赋值。如果表达式有非数字字符或空串,则出错。符或空串,则出错。举例:举例:n%=“123”n中的结果是中的结果是1236
6、。3、当逻辑型值赋值给数值型变量时,、当逻辑型值赋值给数值型变量时,True转换转换为为-1,False转换为转换为0;反之当数值赋给逻辑型变;反之当数值赋给逻辑型变量时,非量时,非0转换为转换为True,0转换为转换为False 4、任何非字符型的值赋值给字符型变量,自动、任何非字符型的值赋值给字符型变量,自动转换为字符型转换为字符型7。数据输入数据输入使用文本框(使用文本框(TextBox)例例4.1使用使用InputBox函数函数数据的输入和输出数据的输入和输出数据输出数据输出使用标签和文本框使用标签和文本框使用使用Print方法方法 使用使用MsgBox函数函数8。4.1.2 Inpu
7、tBox函数函数格式:格式:InputBox(prompt,Title,default,xpos,ypos)strs1=请输入姓名请输入姓名+Chr(13)+Chr(10)+然后单击确定然后单击确定strname=InputBox(strs1,输入框输入框,您的姓名您的姓名,2000,2000)Title标题标题功能:功能:打开一个对话框,等待用户输入,当用户单击打开一个对话框,等待用户输入,当用户单击“确定确定”按钮或按回车键后,返回文本框中输入的按钮或按回车键后,返回文本框中输入的字符串类型字符串类型的值的值Prompt提示提示default缺省缺省 提示项提示项不能省略。不能省略。若要多
8、行提示,可在若要多行提示,可在每行行末加每行行末加回车控制符回车控制符Chr(13)和换行控制符和换行控制符Chr(10)或系统常量或系统常量vbCrLf9。InputBox函数注意事项函数注意事项 Prompt是必选项,其余项若缺省,必须以是必选项,其余项若缺省,必须以“,”跳过跳过 默认情况下,默认情况下,InputBox函数返回的是一个函数返回的是一个字字符串符串,当需要得到数值型数据时,应使用,当需要得到数值型数据时,应使用Val函数函数进行转换,否则可能得到不正确的结果进行转换,否则可能得到不正确的结果 每执行一次每执行一次InputBox函数函数只能输入一个值只能输入一个值,如 果
9、 需 要 输 入 多 个 值,必 须 多 次 调 用如 果 需 要 输 入 多 个 值,必 须 多 次 调 用InputBox函数函数InputBox(“输入姓名输入姓名”,“例题例题”,1000,1000)例例4.310。4.1.3 MsgBox函数和函数和MsgBox过程过程 功能:功能:打开一个信息框,等待用户选择一个按钮打开一个信息框,等待用户选择一个按钮 区别:区别:MsgBox函数函数返回返回所选按钮的值所选按钮的值 MsgBox过程过程不返回值,常用于简单的信息显示不返回值,常用于简单的信息显示 格式:格式:MsgBox(Prompt,Type,Title)MsgBox Prom
10、pt,Type,Title11。MsgBox函数函数Title标题标题Prompt提示提示命令按钮命令按钮图标图标函数格式:函数格式:MsgBox(Prompt,Type,Title)Dim response as string*20Response=MsgBox(“Do you want to continue?”,1+32+0,“信息窗信息窗口口”)12。MsgBox中中Type参数设置表参数设置表 信息图标信息图标 64VBInformation警告信息图标警告信息图标 48VBExclamation询问信息图标询问信息图标 32VBQuestion关键信息图标关键信息图标 16VBCr
11、itical图标图标类型类型 重试、取消按钮重试、取消按钮 5VBRetryCancel是、否按钮是、否按钮 4VBYesNo是、否、取消按钮是、否、取消按钮 3VBYesNoCancel终止、重试、忽略按钮终止、重试、忽略按钮 2VBAboutRetryIgnore确定、取消按钮确定、取消按钮 1VBOkCancel确定按钮确定按钮 0VBOkOnly按钮按钮数目数目 描描 述述值值内内 部部 常常 数数分组分组 本章目录本章目录13。MsgBox函数返回值函数返回值 MsgBox函数的返回值是一个整数,这个整数与所函数的返回值是一个整数,这个整数与所选择的按钮有关选择的按钮有关 按钮的返回
12、值决定了按钮的返回值决定了程序执行的流程程序执行的流程本章目录本章目录内部常数内部常数返回值返回值被单击的按钮被单击的按钮vbOk1确定确定vbCancel2取消取消vbAbort3终止终止vbRetry4重试重试vbIgnore5忽略忽略vbYes6是是vbNo7否否14。MsgBox过程过程 MsgBox Prompt,Type,Title 没有没有返回值,常用于简单的信息显示返回值,常用于简单的信息显示 例例4.4 编写一个学生成绩查询系统登录程序。编写一个学生成绩查询系统登录程序。操作要求如下:操作要求如下:(1)学号为)学号为12位长度的数字。如果出现非数字字位长度的数字。如果出现非
13、数字字符,则给出相应的错误提示。符,则给出相应的错误提示。(2)密码最多为)密码最多为8位,密码掩码为位,密码掩码为“*”。假定密。假定密码是码是“Wang”。如果输入的密码有误,给出相应。如果输入的密码有误,给出相应的出错信息提示。的出错信息提示。15。4.2 选择结构选择结构 n主要通过主要通过If条件语句和条件语句和Select Case语句语句来实现来实现n它们都是它们都是对给出的条件进行判断对给出的条件进行判断,根据,根据判断结果,判断结果,选择执行不同的分支选择执行不同的分支 本章目录本章目录16。4.2.1 单行结构条件语句单行结构条件语句 格式格式 If 条件表达式条件表达式
14、Then 语句序列语句序列 If 条件表达式条件表达式 Then 语句序列语句序列1 Else 语句序列语句序列2 说明说明 1.“条件表达式条件表达式”可以是关系表达式、逻辑表达可以是关系表达式、逻辑表达式或数值表达式。如果是数值表达式作为条件,式或数值表达式。如果是数值表达式作为条件,则则非非0值为真,值为真,0值为假值为假。2.“语句序列语句序列”可以包含多条语句,所有语句可以包含多条语句,所有语句必必须在一行中写完须在一行中写完,各个语句之间用,各个语句之间用冒号冒号“:”分隔分隔17。4.2.1 单行结构条件语句单行结构条件语句 执行流程执行流程 If 条件表达式条件表达式 Then
15、 语句序列语句序列 If 条件表达式条件表达式 Then 语句序列语句序列1 Else 语句序列语句序列2条件条件语句组语句组1FT条件条件语句组语句组1语句组语句组2FT例例4.5 输入输入3个数个数a,b,c,并输出其中最大的数。,并输出其中最大的数。18。4.2.2 块结构条件语句块结构条件语句格式格式1:If 条件表达式条件表达式 Then 语句序列语句序列End If格式格式2:If 条件表达式条件表达式 Then 语句序列语句序列1Else 语句序列语句序列2End If条件条件语句组语句组1FT条件条件语句组语句组1语句组语句组2FT流程图:流程图:19。块结构条件语句说明块结构
16、条件语句说明(1)在块在块If语句中,语句中,一个一个If块必须由一条块必须由一条End If语句结束语句结束。Then和和Else后面的后面的“语句序列语句序列”必须另起一行。必须另起一行。(2)条件表达式可以是关系表达式、逻辑表达条件表达式可以是关系表达式、逻辑表达式或数值表达式。式或数值表达式。如果是数值表达式作为条如果是数值表达式作为条件,则件,则非非0值为真,值为真,0值为假值为假。(3)“语句序列语句序列”可以包含多条语句,一行写可以包含多条语句,一行写一条语句,也可以一行写多条语句。一条语句,也可以一行写多条语句。(4)采用采用缩进格式缩进格式书写,结构清晰,便于检查。书写,结构
17、清晰,便于检查。20。块结构条件语句举例块结构条件语句举例 例例4.6 计算计算分段函数分段函数yxxxxxxxsincos231030 单分支单分支 y=cos(x)x3+3*x 结构实现结构实现 If x0 Then y=sin(x)+sqr(x*x+1)If x0 Then 双分支双分支 y=sin(x)+sqr(x*x+1)Else结构实现结构实现 y=cos(x)x3+3*x End If21。4.2.3 多分支结构条件语句多分支结构条件语句 使用场合:使用场合:实际处理的问题有多个条件时,根据条件的值实际处理的问题有多个条件时,根据条件的值确定执行哪个语句序列确定执行哪个语句序列语
18、句格式:语句格式:条件2条件nT F T F 语句序列n+1 语句序列2 语句序列1 F T 条件1 语句序列n If 条件表达式条件表达式1 Then 语句序列语句序列1ElseIf 条件表达式条件表达式2 Then 语句序列语句序列2 Else 语句序列语句序列n+1End If执行流程:执行流程:依次判断条件依次判断条件1、条件、条件2.,一旦遇到条件,一旦遇到条件为为True,则执行该条件下的语句,则执行该条件下的语句如果有多个条件为如果有多个条件为True,只执行第一个,只执行第一个如果没有一个为如果没有一个为True,执行,执行Else后的语句后的语句22。例例4.7 设计一个程序
19、,从键盘上输入学生的成绩设计一个程序,从键盘上输入学生的成绩 Score,然后判断该学生成绩属于哪个等级,并,然后判断该学生成绩属于哪个等级,并在屏幕上显示出等级评语。在屏幕上显示出等级评语。本章目录本章目录Private Sub Command1_Click()Dim Score!,str1$str1=请输入请输入0100之间的成绩之间的成绩 Score=Val(InputBox(str1,输入框输入框)If Score=90 Then Print 优优 ElseIf Score=80 Then Print 良良 ElseIf Score=70 Then Print 中中 ElseIf Sc
20、ore=60 Then Print 及格及格 Else Print 不及格不及格 End IfEnd SubPrivate Sub Command2_Click()Dim Score!,str1$str1=请输入请输入0100之间的成绩之间的成绩 Score=Val(InputBox(str1,输入框输入框)If Score=90 Then Print 优优 ElseIf Score=80 And Score=70 And Score=60 And Score 70 Then Print 及格及格 Else Print 不及格不及格 End IfEnd Sub23。If语句的嵌套:语句的嵌套:
21、If或或Else后面的后面的语句块中又包含语句块中又包含If语句语句 用一个用一个IF语句和一个嵌套语句和一个嵌套的的IF语句实现语句实现If xy Then t=x:x=y:y=t If yz Then t=y:y=z:z=t If xyz。本章目录本章目录If Then If Then End If End If24。4.2.5 Select Case多分支结构多分支结构 格式:格式:Select Case 测试表达式测试表达式 Case 表达式列表表达式列表1 语句序列语句序列1 Case 表达式列表表达式列表2 语句序列语句序列2 .Case Else 语句序列语句序列n End Se
22、lectF表达式列表表达式列表1语句块语句块1T表达式列表表达式列表2F表达式列表表达式列表3语句块语句块2语句块语句块3语句块语句块nTT可以是数值型或可以是数值型或字符串型表达式字符串型表达式与与“测试表测试表达式达式”的类的类型必须一致型必须一致25。Select Case语句的几点说明语句的几点说明 1、表达式列表的表达式列表的4种形式种形式 表达式表达式;例例:Case A 一组用逗号分隔的枚举值一组用逗号分隔的枚举值;例例:Case 1,3,5,7 表达式表达式1 To 表达式表达式2;例例:Case 1 To 10 Is 关系表达式。关系表达式。例例:Case Is50 2、表达
23、式列表、表达式列表不能是逻辑表达式不能是逻辑表达式 Case IS=0 AND IS 0 And y 0 Then MsgBox(在第一象限在第一象限)ElseIf x 0 Then MsgBox(在第二象限在第二象限)ElseIf x 0 And y 0 And y 0 And y 0 MsgBox(“在第一象限在第一象限”)Case x 0 MsgBox(“在第二象限在第二象限”)Case x 0 And y 0 And y 0 MsgBox(“在第四象限在第四象限”)End Select代码二错误:代码二错误:1.Select Case 后不能出现多个变量后不能出现多个变量2.Case后
24、不能出现变量及有关运算符后不能出现变量及有关运算符27。Select Case语句举例语句举例例例4.8 某百货商场举办庆某百货商场举办庆“十一十一”购物促销活动,根据购物促销活动,根据购买物品总价格的不同,可以获得不同的优惠条件。其购买物品总价格的不同,可以获得不同的优惠条件。其活动规则如下:活动规则如下:1)总价格在)总价格在500元以下不享受优惠。元以下不享受优惠。2)总价格在)总价格在500元(含元(含500元)以上且小于元)以上且小于2000元者,给予元者,给予10%的优惠。的优惠。3)总价格在)总价格在2000元(含元(含2000元)元)4000元者,给予元者,给予12%的优惠。的
25、优惠。4)总价格在)总价格在4000元(含元(含4000元)元)6000元者,给予元者,给予14%的优惠。的优惠。5)总价格在)总价格在6000元(含元(含6000元)以上者,给予元)以上者,给予15%的优惠。的优惠。编写程序,输入物品总价格,计算应付款额和折扣款额。编写程序,输入物品总价格,计算应付款额和折扣款额。Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Price As Single Price=Val(Text1.Text)If KeyAscii=13 Then Select Case Price Case Is 500 Tex
26、t2.Text=Price Text3.Text=0 Case Is 2000 Text2.Text=Price*0.9 Text3.Text=Price*(1-0.9)Case Is 4000 .Case Is y,x,y)该语句与如下语句等价该语句与如下语句等价:If x y Then Max=x Else Max=y 本章目录本章目录30。2.Choose函数函数 Choose(整数表达式,选项列表整数表达式,选项列表)nChoose是是Select Case End Select结构的简洁表示结构的简洁表示n根据整数表达式的值根据整数表达式的值i,返回选项列表中第,返回选项列表中第i个
27、选项。个选项。如果整数表达式的值越出选项范围时,返回如果整数表达式的值越出选项范围时,返回Nulln【举例【举例】根据根据nop的值,得到的值,得到+、-、中的某运中的某运算符。算符。本章目录本章目录Dim nop As Integer,op As StringRandomize()nop=Int(Rnd*4+1)op=Choose(nop,+,-,)MsgBox(nop=&nop&op=&op)31。4.3 循环结构循环结构 n计算机最擅长的功能之一就是按规定的条件,计算机最擅长的功能之一就是按规定的条件,重复执行重复执行某些操作。某些操作。n按照人口增长率对人口增长统计按照人口增长率对人口
28、增长统计n计算每个学生的平均成绩计算每个学生的平均成绩n循环:循环:在指定条件下在指定条件下多次重复执行多次重复执行一组语句序列一组语句序列(循环体循环体),直到指定的条件满足为止。),直到指定的条件满足为止。nVB提供了提供了3种循环语句:种循环语句:nFor.Next计数循环计数循环(一般一般已知循环次数已知循环次数)nWhile.Wend当循环当循环nDo.Loop循环循环本章目录本章目录32。4.3.1 For.Next循环语句循环语句For 循环变量循环变量=初值初值 To 终值终值 Step 步长步长 语句序列语句序列1 Exit For 语句序列语句序列2Next 循环变量循环变
29、量n说明说明:(1)循环变量必须是数值型,初值和终值都是数值表达式;循环变量必须是数值型,初值和终值都是数值表达式;(2)步长是循环变量的增量,可以是正数、负数、小数,步长是循环变量的增量,可以是正数、负数、小数,不不能为零能为零。步长为步长为1,可省略不写,可省略不写;(3)Exit For:可选项,表示遇到该语句时退出循环,执行:可选项,表示遇到该语句时退出循环,执行Next后的下一条语句;后的下一条语句;(4)For和和Next 的循环变量名必须相同;的循环变量名必须相同;(5)For与与Next必须成对出现,必须成对出现,不能单独使用不能单独使用33。执行流程:执行流程:(1)循环变量
30、被赋初值,循环变量被赋初值,它仅被赋值一次。它仅被赋值一次。(2)判断循环变量是否在判断循环变量是否在终值内,如果是,执行循环终值内,如果是,执行循环体;如果否,结束循环,执体;如果否,结束循环,执行行Next的下一语句。的下一语句。(3)循环变量加步长,转循环变量加步长,转(2),继续循环,继续循环 循环变量循环变量=循环变量循环变量+步长步长循环变量循环变量=初值初值循环变量循环变量终值终值?语句序列语句序列1有有Exit For?语句序列语句序列2YYNNNext的下一条语句的下一条语句 循环次数循环次数)1(步长初值终值Int34。例例4.10 计算计算1100的奇数和。的奇数和。本例
31、题不需要进行界面设计,编写代码如下:本例题不需要进行界面设计,编写代码如下:Private Sub Form_Click()Dim Sum%,I%Sum=0 设置累加和变量的初始值设置累加和变量的初始值 For I=1 To 100 step?Sum=Sum+I Next I Print 1100奇数的和奇数的和=;SumEnd Sub 说明:说明:1、退出循环后,、退出循环后,循环变量的值保持退出时的值循环变量的值保持退出时的值2、在循环体内对循环控制变量可多次引用,但、在循环体内对循环控制变量可多次引用,但不宜对其赋不宜对其赋值值,否则会影响原来的循环控制规律,否则会影响原来的循环控制规律
32、,例例4.11For 循环变量循环变量=初值初值 To 终值终值 Step 步长步长 语句序列语句序列1 Exit For 语句序列语句序列2Next 循环变量循环变量35。4.3.2 While.Wend循环语句循环语句 格式:格式:While 条件表达式条件表达式 语句序列语句序列 Wend 说明说明 1)“条件表达式条件表达式”:同其他语句同其他语句 2)“语句序列语句序列”:其中一定要包其中一定要包含一条含一条能够改变能够改变While中的条件值中的条件值的语的语句。句。3)如果条件从一开始就不成立,则一)如果条件从一开始就不成立,则一次循环也不执行;如果条件总是成立,次循环也不执行;
33、如果条件总是成立,则进入死循环。则进入死循环。Y计算计算“条件表达式条件表达式”的值的值条件为真?条件为真?N语句序列语句序列36。例例4.12 从键盘上输入字符,对输入的字符进从键盘上输入字符,对输入的字符进行计数,当输入的字符为行计数,当输入的字符为“?”时,停止计数,时,停止计数,并输出结果。并输出结果。Private Sub Command1_Click()Dim str$,n%str=Text1.Text n=0 While Left(str,1)?n=n+1 str=Mid(str,2)Wend Text2=nEnd SubPrivate Sub Form_Click()Dim C
34、har As String,msg As String,n%Const strCh=“?”声明一个符号常量声明一个符号常量 msg=请输入一个字符:请输入一个字符:Char=InputBox(msg)While Char strCh n=n+1 Char=InputBox(msg)Wend Print 输入的字符个数是:输入的字符个数是:;nEnd Sub37。4.3.3 Do.Loop循环循环 1、前测型、前测型Do.Loop循环结构语句循环结构语句 Do While|Until 条件表达式条件表达式 语句序列语句序列1 Exit Do 语句序列语句序列2 Loop2、后测型、后测型Do.L
35、oop循环结构语句循环结构语句 Do 语句序列语句序列1 Exit Do 语句序列语句序列2 Loop While|Until 条件表达式条件表达式3、说明:、说明:While 是当条件为是当条件为True时,执行循环体。时,执行循环体。Until是直到条件为是直到条件为True时,才退出循环。时,才退出循环。F T循环体 条件T F 循环体 条件n关键字为关键字为While38。Do-Loop循环举例循环举例例例4.14(自学)(自学)求自然对数的底求自然对数的底e的近似值。当最后一项的的近似值。当最后一项的绝对值小于绝对值小于10-5时,停止计算。时,停止计算。e的近似值公式是:的近似值公
36、式是:例例4.15 目前世界人口约为目前世界人口约为60亿,如果每年以亿,如果每年以1.4%的速度增长,的速度增长,多少年后世界人口达到或超过多少年后世界人口达到或超过70亿。亿。!1!31!21!111nePrivate Sub Form_Click()Dim P As Single,N%,r!P=60:N=0:r=0.014 Do P=P*(1+r)N=N+1 Loop Until P=70 Print N;年后,世界人口将达到年后,世界人口将达到;PEnd Sub)014.1log()67log(n 0.014)60(170n39。4.3.4 多重循环多重循环单重循环:单重循环:循环体内
37、不含有循环语句的循环循环体内不含有循环语句的循环多重循环:多重循环:循环体内含有循环语句的循环循环体内含有循环语句的循环对于循环嵌套,使用时应该注意以下几点:对于循环嵌套,使用时应该注意以下几点:1)内循环控制变量与外循环控制变量)内循环控制变量与外循环控制变量不能同名不能同名。2)外循环必须完全包含内循环,)外循环必须完全包含内循环,不能交叉不能交叉。3)采用)采用缩进格式缩进格式书写,结构清晰,便于检查。书写,结构清晰,便于检查。4)利用)利用Goto语句可以从循环体内转到循环体外,但是不语句可以从循环体内转到循环体外,但是不能从循环体外转入循环体内。能从循环体外转入循环体内。5)Next
38、后面的控制变量名可以省略不写。后面的控制变量名可以省略不写。6)如果多层嵌套具有相同的终点时,可以共有一个)如果多层嵌套具有相同的终点时,可以共有一个Next语句,此时语句,此时Next后面的循环控制变量不能省略。后面的循环控制变量不能省略。40。4.3.4 多重循环多重循环内外循环控制变量同名内外循环控制变量同名For a=1 to 10 For a=1 to 5 Next aNext a从循环外转入循环内从循环外转入循环内For i=1 to 10 For j=1 to 5 TT:Print m Next jNext iGoTo TT:内外循环交叉内外循环交叉For a=1 to 10 F
39、or b=1 to 5 Next aNext b下面程序段是错误的:下面程序段是错误的:41。4.3.4 多重循环多重循环 例例4.16 打印九九表。打印九九表。思考:思考:打印上三角或下三角程序如何改动?打印上三角或下三角程序如何改动?42。4.4 其它辅助语句其它辅助语句-GoTo语句语句 格式:格式:GoTo 行号行号|标号标号 作用:作用:无条件地转移到无条件地转移到行号或标号指定的那行语句行号或标号指定的那行语句 说明说明 (1)标号:一个以字符开头的字符序列,)标号:一个以字符开头的字符序列,行号:一个正整数。行号:一个正整数。(2)尽量少用或不用尽量少用或不用GoTo语句,用选择
40、结构或循语句,用选择结构或循环结构来代替。环结构来代替。43。素数:除素数:除1和本身以外,不能被其他任何整数整除的数;和本身以外,不能被其他任何整数整除的数;判别判别m是否为素数是否为素数最简单的方法最简单的方法就是依次用就是依次用i=2m-1去除,去除,只要有一个数能整除只要有一个数能整除m,m就就不是素数;否则不是素数;否则m是素数。是素数。例例4.18 编写一个程序,判断所输入的数据是否是素数,编写一个程序,判断所输入的数据是否是素数,若是素数,则在窗体上的图片框中显示相应的信息。若是素数,则在窗体上的图片框中显示相应的信息。Private Sub Command2_Click()Di
41、m i%,m%,Flag As Boolean m=Val(Text1.Text)Flag=True 假设是素数假设是素数 For i=2 To Sqr(m-1)If(m Mod i)=0 Then Flag=False 设置不是素数状态设置不是素数状态 Next i If Flag=True Then Picture1.Print m&是素数是素数 Else Picture1.Print m&不是素数不是素数 End IfEnd Sub44。End语句语句n独立的独立的End语句用于结束一个程序的运行,它可以语句用于结束一个程序的运行,它可以放在放在任何任何事件过程中。事件过程中。n格式:格
42、式:End 除此以外,还有许多形式的除此以外,还有许多形式的End语句,用于结束一语句,用于结束一个过程或块。个过程或块。End If:结束条件语句:结束条件语句 End Select:结束情况语句;:结束情况语句;End With:结束一个数据块;:结束一个数据块;End Sub:结束一个:结束一个Sub过程;过程;End Function:结束一个:结束一个Function过程;过程;45。With语句语句(略)(略)With语句格式如下:语句格式如下:With 对象对象 语句块语句块 End With With语句的作用是对某个对象执行一系列的语句,语句的作用是对某个对象执行一系列的语句
43、,而不重复指出对象的名称。而不重复指出对象的名称。相当于Command1.Fontsize=24Command1.Width=1200Command1.Height=600Command1.Caption=确定确定With Command1 .Fontsize=24 .Width=1200 .Height=600 .Caption=确定确定 End With46。Exit语句语句 作用:作用:退出某种控制结构的执行退出某种控制结构的执行 常见的常见的Exit格式如下:格式如下:无条件格式无条件格式 有条件格式有条件格式 Exit For If 条件条件 Then Exit For Exit D
44、o If 条件条件 Then Exit Do Exit Sub If 条件条件 Then Exit Sub Exit Function If 条件条件 Then Exit Function 尽量使用尽量使用Exit出口语句取代出口语句取代GoTo语句跳出语句跳出循环循环47。注释语句注释语句 格式:格式:|Rem 【举例【举例】Area=3.14*r2 求圆的面积求圆的面积 Rem This Is a simple example 说明:说明:注释语句是注释语句是非执行语句非执行语句,仅对程序的有关内容起注释作用,仅对程序的有关内容起注释作用,不被解释和编译;不被解释和编译;通常以通常以引导的
45、注释放在一个语句行的尾部,用来对某一引导的注释放在一个语句行的尾部,用来对某一行代码进行注释;行代码进行注释;以以Rem引导的注释放在过程或模块的开头,用来对程序块引导的注释放在过程或模块的开头,用来对程序块进行注释。进行注释。48。Stop语句语句 格式:格式:Stop 说明:说明:Stop可以放在过程中的任何地方,用来可以放在过程中的任何地方,用来暂停暂停程序的执行,相当于在程序代码中设置断点程序的执行,相当于在程序代码中设置断点。49。第第4章作业章作业 P127 三、编程题三、编程题 1、2、450。4月月2日上机题目日上机题目 理论教材理论教材P80 例例3.3 实验指导实验指导P211 实验实验3-5 理论教材理论教材P88 例例4.2、4.4 实验指导实验指导P213 实验实验4-1、4-251。4月月16日上机题目日上机题目 理论教材理论教材P98 例例4.7、4.12、4.15、4.16 实验指导实验指导P214 实验实验4-3、4-652。