三种基本结构程序设计上课讲义.ppt
第四章第四章 三种三种(sn zhn)基本结构基本结构程序设计程序设计 本章内容及要求:本章内容及要求:1.了解算法概念了解算法概念(ginin)及算法的表示,及算法的表示,掌握用流程图表示算法掌握用流程图表示算法 2.熟练掌握赋值语句、熟练掌握赋值语句、End语句和注释语句和注释语句等语句及输入语句等语句及输入/输出消息框函数的使用;输出消息框函数的使用;3.熟练掌握行熟练掌握行if语句、块语句、块if结构、结构、Select Case情况选择结构的使用,掌握选择的嵌情况选择结构的使用,掌握选择的嵌套结构;套结构;4.熟练掌握实现循环结构的熟练掌握实现循环结构的For/Next循循环结构及环结构及Exit For语句、语句、Do/Loop循环结构循环结构的使用,掌握多重循环。的使用,掌握多重循环。重点重点(zhngdin):选择结构及循环结构的实现及其应用:选择结构及循环结构的实现及其应用难点:难点:选择的嵌套及多重循环结构选择的嵌套及多重循环结构第一页,共53页。4.1 算法算法(sun f)及算法及算法(sun f)的表示的表示 4.1.1 算法概述算法概述 什么是算法:什么是算法:广义地讲:算法是为完成一项任务所应当遵循的一步一步广义地讲:算法是为完成一项任务所应当遵循的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。的规则的、精确的、无歧义的描述,它的总步数是有限的。狭义地讲:算法是解决一个问题采取的方法狭义地讲:算法是解决一个问题采取的方法(fngf)和步骤和步骤的描述。的描述。下面通过两个简单的例子加以说明:下面通过两个简单的例子加以说明:例例4.1 输入三个数,然后输出其中最大的数。输入三个数,然后输出其中最大的数。将三个数依次将三个数依次(yc)输入到变量、输入到变量、B、C中,设变量中,设变量MAX存存放最大数。其算法如下:放最大数。其算法如下:第二页,共53页。例例4.2 输入输入10个数,打印输出其中最大的数。个数,打印输出其中最大的数。算法算法(sun f)设计如下:设计如下:(1)输入)输入1个数个数,存入变量存入变量A中中,将记录数据个数的变量将记录数据个数的变量N赋值为赋值为1,即即N=1(2)将)将A存入表示最大值的变量存入表示最大值的变量Max中,即中,即Max=A(3)再输入一个值给)再输入一个值给A,如果,如果AMax 则则 Max=A,否则否则Max不变不变(4)让记录数据个数的变量增加)让记录数据个数的变量增加1,即,即N=N+1(5)判断)判断N是否小于是否小于10,若成立则转到第(,若成立则转到第(3)步执行,否则转到)步执行,否则转到第(第(6)步。)步。(6)打印输出)打印输出max1)输入输入A、B、C。2)A与与B中大的一个中大的一个(y)放入放入MAX中。中。3)把把C与与MAX中大的一个中大的一个(y)放入放入MAX中。中。4)输出输出MAX,MAX即为最大数。即为最大数。第三页,共53页。4.1.2 算法算法(sun f)的特性的特性 1有穷性有穷性2 一个算法必须经过有限步骤之后就能解决某个问题。事实一个算法必须经过有限步骤之后就能解决某个问题。事实上,一般的有限性限制在实际中是不够的,因为尽管解决某个上,一般的有限性限制在实际中是不够的,因为尽管解决某个特定问题的执行步骤量是有限的,但可能对实际计算来说仍太特定问题的执行步骤量是有限的,但可能对实际计算来说仍太大。一个有用的算法不仅要求步骤有限,同时也要求步骤量合大。一个有用的算法不仅要求步骤有限,同时也要求步骤量合理。理。3确定性确定性4 一个算法的每一步必须是无歧义的和精确定义的。在各种情一个算法的每一步必须是无歧义的和精确定义的。在各种情况下动作的执行必须严密地确定。况下动作的执行必须严密地确定。53 有有0个或多个个或多个(du)输入且有一个或多个输入且有一个或多个(du)输出输出6 输入可定义为算法执行前初始化时给定的一些量,输出指输入可定义为算法执行前初始化时给定的一些量,输出指与输入有某种特定关系的,在算法执行完成时产生的一些量。与输入有某种特定关系的,在算法执行完成时产生的一些量。74 通用性通用性8 一个算法最好是适用于某类问题而不只是适用于某一个问题。一个算法最好是适用于某类问题而不只是适用于某一个问题。这种通用性,尽管不是必要的,但肯定是一有用算法要求的特这种通用性,尽管不是必要的,但肯定是一有用算法要求的特性性 第四页,共53页。4.1.3 算法的表示算法的表示 一、自然语言与伪代码表示算法一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,自然语言:就是指人们日常使用的语言,可以是汉语可以是汉语(Hny)、英语或其它语言。、英语或其它语言。伪代码:是用介于自然语言和计算机语言伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述之间的文字和符号(包括数学符号)来描述算法。算法。例如:例例如:例4.1可用如下的伪代码表示可用如下的伪代码表示Begin(算法开始)(算法开始)输入输入 A,B,C IF AB 则则 AMax 否则否则 BMax IF CMax 则则 CMaxPrint MaxEnd(算法结束算法结束)第五页,共53页。二、二、用传统用传统(chuntng)流程图表示算法流程图表示算法处理(chl)框起止(q zh)框I/O框判断框流程线连接点1、传统流程图中的基本符号、传统流程图中的基本符号第六页,共53页。2、三种基本、三种基本(jbn)结构的传统表示结构的传统表示(1)顺序结构)顺序结构条件(tiojin)语句(yj)1语句2YN语句1语句2(2)选择结构)选择结构第七页,共53页。条件(tiojin)(a)条件(tiojin)语句(yj)组(3)循环结构)循环结构a)当型循环当型循环b)直到循环直到循环YNYN(b)语句组第八页,共53页。例例4.2输入输入(shr)10个数,打印输出其中的最大的数的流程个数,打印输出其中的最大的数的流程图图NMaxMax=A输入A开始再输入给AN=N+1输出Max结束YNNY第九页,共53页。Private Sub Form_Click()Dim a%,max%,i%a=Val(InputBox(A=?)max=a For i=2 To 10 a=Val(InputBox(A=?)If a max Then max=a Next i MsgBox(Max=“&Str(max)End Sub 最后需要说明的是:上面介绍的算法表示是给人看的,最后需要说明的是:上面介绍的算法表示是给人看的,即是为帮助程序开发人员阅读、编写程序而设计的一种辅助即是为帮助程序开发人员阅读、编写程序而设计的一种辅助工具,程序则必须工具,程序则必须(bx)符合计算机语言的语法规则。符合计算机语言的语法规则。下面是例下面是例4.2的计算机的计算机 程序,即为用计算机语言表示算法:程序,即为用计算机语言表示算法:第十页,共53页。4.2 顺序顺序(shnx)结构结构4.2.1 4.2.1 赋值语句赋值语句 形式形式:变量名表达式变量名表达式 对象对象.属性表达式属性表达式 功能:功能:将表达式的值赋值给变量名或指定对象的将表达式的值赋值给变量名或指定对象的属性。属性。一般一般(ybn)(ybn)用于给变量赋值或对控用于给变量赋值或对控件设定属性值件设定属性值.例:例:sRate!=0.1 sRate!=0.1 Text1.Text Text1.Text 欢迎使用欢迎使用Visual Visual B”B”说明:说明:1.1.执行过程:先求表达式的值,然后将值赋值给执行过程:先求表达式的值,然后将值赋值给左边的变量。左边的变量。2.2.右边表达式可以是变量、常量、函数调用等特右边表达式可以是变量、常量、函数调用等特殊的表达式。殊的表达式。3.3.不要将不要将“”理解为数学上的等号:理解为数学上的等号:A=A+1 A=A+1 是表示将是表示将A A单元的值加单元的值加后以放回到后以放回到A A单元。单元。第十一页,共53页。执行执行(zhxng)过程过程如右图如右图4赋值符号赋值符号“=”左边一定只能是变量名或对象的属性左边一定只能是变量名或对象的属性(shxng)引用,不能是常量、符号常量、表达式。引用,不能是常量、符号常量、表达式。下面的赋值语句都是错的:下面的赋值语句都是错的:5=X 左边是常量。左边是常量。Abs(X)=20 左边是函数调用,即是表达式。左边是函数调用,即是表达式。5.赋值符号赋值符号“=”两边的数据类型一般两边的数据类型一般(ybn)要求应一致。要求应一致。第十二页,共53页。缺省值缺省值标题题标题题提示提示4.2.2 用户交互函数用户交互函数 1.InputBox函数函数变量名变量名=InputBox$(,)其中其中:提示提示 提示信息提示信息,标题标题 标题区显示标题区显示,缺省缺省输入区缺省值输入区缺省值 有有$返回字符类型返回字符类型,否则为数值类型否则为数值类型.例如,要在屏幕上显示如下的对话框例如,要在屏幕上显示如下的对话框:第十三页,共53页。例如:有下列例如:有下列(xili)语句如下语句如下:Dim strName As String*40,strS1 As String*40 strS1=“请输入你的姓名请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定然后单击确定”strName=InputBox$(strS1,“输入框输入框”,100,100)当键盘输入当键盘输入“王晓明王晓明”后后,变量变量strName获得键盘输入的值获得键盘输入的值.缺省值缺省值标题题标题题提示提示第十四页,共53页。2.MsgBox函数函数 函数形式函数形式:变量变量(binling)%=MsgBox(提示提示,按钮按钮图标图标+缺省按钮缺省按钮+模式模式,标题,标题)图标标题提示信息命令按钮第十五页,共53页。说明:说明:“标题标题”和和“提示提示”与与InputBox函数中对应的参数相同;函数中对应的参数相同;“按钮图标按钮图标+缺省按钮缺省按钮+模式模式”是整型表达式,决定是整型表达式,决定信息信息(xnx)框按钮数目、出现在信息框按钮数目、出现在信息(xnx)框上的图标类框上的图标类型及操作模式型及操作模式(见表见表4.1)若程序中需要返回值,则使用函数,否则可调用过程。若程序中需要返回值,则使用函数,否则可调用过程。第十六页,共53页。按钮及图标值如下按钮及图标值如下(rxi):第十七页,共53页。例例4.1 编一帐号和密码编一帐号和密码(m m)检验程序。检验程序。要求要求:帐号不超过帐号不超过6位数字位数字,有错有错,清除原内容再输入清除原内容再输入.密码密码(m m)输入时在屏幕上以输入时在屏幕上以“*”代替代替;若密码若密码(m m)错,显示有关信息,选择错,显示有关信息,选择“重试重试”按钮,清按钮,清除原内容再输入,选择除原内容再输入,选择“取消取消”按钮,停止运行。按钮,停止运行。分析分析:帐号帐号6位位,MaxLength为为6,密码密码(m m)PassWordChar为为“*”,MsgBox函数设置密码函数设置密码(m m)错对话框错对话框.第十八页,共53页。4.3 选择选择(xunz)结构结构 1.IfThen语句语句(单分支结单分支结构构)If Then 语句块语句块 End If 或或 If Then 例例:已知两个数已知两个数x和和y,比较它们的,比较它们的大小大小(dxio),使得使得x大于大于y.If xy Then t=x:x=y:y=t End If 或或 If xy Then t=x:x=y:y=t第十九页,共53页。2.IfThenElse语句语句(双分支双分支(fnzh)结构结构)If Then Else End If If Then Else 例如:输出例如:输出x,y两个中值较大两个中值较大(jio d)的一个值。的一个值。IF XY Then Print XElse Print YEnd If也可以写成如下的单行形式:也可以写成如下的单行形式:IF XY Then Print X Else Print Y 双分支选择结构执行双分支选择结构执行(zhxng)过程过程 第二十页,共53页。3.IfThenElseIf语句语句(多分支结构多分支结构(jigu)形式形式:If Then ElseIf Then Else 语句块语句块 n+1 End If 例:输入一学生成绩例:输入一学生成绩(chngj),评定其等级。方法是:,评定其等级。方法是:90100分分为为“优秀优秀”,8089分为分为“良好良好”,7079分为分为“中等中等”,6069分为分为“及格及格”,60分以为分以为“不合格不合格”执行(zhxng)过程第二十一页,共53页。请问以下哪些请问以下哪些(nxi)正确,哪些正确,哪些(nxi)错误?错误?第二十二页,共53页。IIf 函数函数(hnsh)语法语法(yf):IIf(expr,truepart,falsepart)部分部分描述描述expr必要参数。用来判断真伪的表达式。truepart必要参数。如果 expr 为 True,则返回这部分的值或表达式。falsepart必要参数。如果 expr 为 False,则返回这部分的值或表达式。例如(lr):CheckIt=IIf(TestMe 1000,Large,Small)相当于:If TestMe 1000 Then testIt=Large Else testIt=Small End If第二十三页,共53页。4.3.2 Select Case语句(情况语句)语句(情况语句)形式:形式:Select Case 变量或表达式变量或表达式Case 表达式列表表达式列表(li bio)1语句块语句块1Case 表达式列表表达式列表(li bio)2语句块语句块2Case Else语句块语句块n+1End Select:与:与同类型的下同类型的下面四种形式之一:面四种形式之一:表达式表达式 A+5 一组枚举表达式一组枚举表达式(用逗号分隔用逗号分隔)2,4,6,8 表达式表达式1 To 表达式表达式2 60 to 100 Is 关系运算符表达式关系运算符表达式 Is 60数值(shz)型或字符串表达式第二十四页,共53页。例 输入百分制成绩mark,显示(xinsh)对应的五级制成绩哪些(nxi)能实现,哪些(nxi)不能实现?第二十五页,共53页。4.3.3 选择结构的嵌套选择结构的嵌套 在在IF语句的语句的Then分支和分支和Else分支中可以完整地嵌套另一分支中可以完整地嵌套另一IF语语句或句或Select Case语句,同样语句,同样Select Case语句每一个语句每一个Case分支中都可分支中都可嵌套另一嵌套另一IF语句或另一语句或另一Select Case语句。下面语句。下面(xi mian)是两种正是两种正确的嵌套形式:确的嵌套形式:(1)IF Then .if Then Else .End If .Else .IF Then .Else .End If .End IF(2)IF Then .Select Case Case IF Then Else .End If Case.End Select .End IF第二十六页,共53页。注意:注意:只只要要在在一一个个分分支支内内嵌嵌套套,不不出出现现交交叉叉,满满足足结结构构规规则则,其其嵌嵌套套的的形形式式将将有有很很多多种种,嵌嵌套套层层次次也也可以任意多。可以任意多。对对于于多多层层IF嵌嵌套套结结构构中中,要要特特别别注注意意IF与与Else的的配配对对关关系系,一一个个Else必必须须与与IF配配结结,配配对对的的原原则则是是:在在写写含含有有多多层层嵌嵌套套的的程程序序时时,V会会自自动动缩缩进对齐方式,这样容易进对齐方式,这样容易(rngy)阅读和维护。阅读和维护。第二十七页,共53页。4.3.44.3.4常见错误常见错误1 1在选择结构中缺少配对在选择结构中缺少配对(pi du)(pi du)的的结束语句结束语句对多行式的对多行式的IfIf块语句中,应有配对块语句中,应有配对(pi(pi du)du)的的 End If End If语句结束。语句结束。2.2.多边选择多边选择ElseIfElseIf关键字的书写和条件关键字的书写和条件表达式的表示表达式的表示 ElseIf ElseIf 不要写成不要写成Else IfElse If;多个条件表达式次序问题多个条件表达式次序问题3.Select Case3.Select Case语句的使用语句的使用 Select Case Select Case 后不能出现多个变量;后不能出现多个变量;CaseCase子句后不用条件变量进行逻辑运算子句后不用条件变量进行逻辑运算第二十八页,共53页。4.4 4.4 循循环结环结构构1.For1.For循循环语环语句句(一般用于循一般用于循环环次数次数(csh)(csh)已知已知)形式形式 For For 循循环变环变量初量初值值 toto 终值终值 Step Step 步步长长 语语句句块块Exit ForExit For 语语句句块块 Next Next 循循环变环变量量循环体循环体 0 初值初值终值终值 =1 时时,可省可省略略终值终值=0 死循环死循环 步长步长第二十九页,共53页。循环循环(xnhun)次数次数例例:For I=2 To 13 Step 3 Label1.Text=Label1.Text&Str(I)&Chr(13)&Chr(10)Next I Label1.Text=Label1.Text&“I=”&Str(I)循环执行次数循环执行次数(csh)输出输出I的值分别为的值分别为:2 5 8 11 出了循环输出为出了循环输出为:I=14第三十页,共53页。例例4.5 编程计算编程计算(j sun):S=1+2+3+100Dim S%,I%S=0 累累 加加 前前 变变 量量(binling)S为为0For I=1 to 100 S=S+INext IMsgBox(S=“&S)当当N=100N=N+1打印打印(d yn)SS=0,N=1S=S+N例例4-5的算法流程图的算法流程图第三十一页,共53页。形式形式(xngsh)1:(当型循环):(当型循环)Do While 语句块语句块 Exit Do 语句块语句块 Loop Do 语句块语句块 Exit Do 语句块语句块 Loop While 4.4.2 DoLoop循环循环(xnhun)语句语句 第三十二页,共53页。第三十三页,共53页。形式形式2:(直到循环)直到循环)Do Until 语句块语句块 Exit Do 语句块语句块LoopDo 语句块语句块 Exit Do 语句块语句块Loop Until 第三十四页,共53页。条 件语句块语句块TFExit Do条 件语句块语句块TFExit Do Do UntilLoop执行执行(zhxng)过程过程 DoLoop Until执执行行(zhxng)过程过程 第三十五页,共53页。说明说明(shumng):(1)当当使使用用While构构成成循循环环时时,当当条条件件为为“真真”则反复执行循环体,当条件为则反复执行循环体,当条件为“假假”,则退出循环。,则退出循环。(2)当当使使用用Until 构构成成循循环环时时,当当条条件件为为“假假”,则则反反复复执执行行循循环环体体,直直到到条条件件成成立立,即即为为“真真”时时,则退出循环。则退出循环。(3)在在循循环环体体内内一一般般应应有有一一个个专专门门用用来来(yn li)改改变变条条件件表表达达式式中中 变变量量的的语语句句,以以使使随随着着循循环环的的执执行行,条条件件趋趋于于不不成成立立 (或成立),最后达到退出循环。(或成立),最后达到退出循环。(4)语语句句Exit Do的的作作用用是是退退出出它它所所在在的的循循环环结结构构,它它只只能能 用用在在DO/Loop结结构构中中,并并且且常常常常是是同同选选择择结结构构一一起起出出现现在在循循环环结结构构中中,用来用来(yn li)实现当满足某一条件时提前退出循环。实现当满足某一条件时提前退出循环。第三十六页,共53页。例例4.7 求两个求两个(lin)整数的最大公约数、最小公整数的最大公约数、最小公倍数倍数 Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=m:m=n:n=t r=m mod n Do While(r 0)m=n n=r r=m mod n LoopPrint 最大公约数最大公约数=,n Print 最小公倍数最小公倍数=,nm/n 分析:求最大公约数的算法思想分析:求最大公约数的算法思想(sxing):(最小公倍数最小公倍数=两个整数之积两个整数之积/最大公约数最大公约数)(1)对于已知两数对于已知两数m,n,使得,使得mn;(2)m除以除以n得余数得余数r;(3)若若r=0,则,则n为求得的最大公约数,算法结束;否则执行为求得的最大公约数,算法结束;否则执行(4);(4)mn,nr,再重复执行,再重复执行(2)。第三十七页,共53页。4.4.4 循环的嵌套循环的嵌套多重循环结构多重循环结构 如果在一个循环内完整地包含另一个循环结构,如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。层称为三重循环。上面介绍上面介绍(jisho)的几种循环控制结构可以的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:相互嵌套,下面是几种常见的二重嵌套形式:第三十八页,共53页。(1)For I=.For J=.Next J .Next I(2)For I=.Do While/Until.Loop .Next I(3)Do While.For J=.Next J .Loop(4)Do While/Until.Do While/Until.Loop .Loop第三十九页,共53页。对于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;(2)外循环必须完全包含外循环必须完全包含(bohn)内循环,不能交叉;内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转向内不能从循环体外转向循环体内,也不能从外循环转向内循环循环.正正 确确错错 误误 For ii=1 To 10 For jj=1 To 20 Next ii Next jj For ii=1 To 10 For ii=1 To 20 Next ii Next ii For ii=1 To 10 For jj=1 To 20 Next jj Next ii For ii=1 To 10 Next ii For ii=1 To 10 Next ii 第四十页,共53页。4.4.5 几种循环几种循环(xnhun)语句语句比较比较 第四十一页,共53页。4.4.6 循环循环(xnhun)结构与选择结构的嵌套结构与选择结构的嵌套 在循环结构中可以完整嵌套选择结构即整个选择结构都属在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许构必须完整地嵌套在一个分支内,一个循环结构不允许(ynx)出现在两个或两个以上的分支内。出现在两个或两个以上的分支内。第四十二页,共53页。(1)For I=IF Then End IF Next I(6)IF Then For I=End IF Next I(5)Select Case For I=Case Case Next I End Select(3)For I=IF Then Next I End IF(2)IF Then For I=Next I End IF0(4)For I=Select Case Case Case End Select Next I第四十三页,共53页。4.5 4.5 其它辅助控制语句其它辅助控制语句 4.5.1 Goto 4.5.1 Goto 语句语句 形式形式:Go:Go ToTo 标号标号|行号行号 作用是无条件地转移到标号或行号指定作用是无条件地转移到标号或行号指定的那行的那行(n xn)(n xn)语句语句.标号是一个字符序列标号是一个字符序列,行号是行号是一个数字序列。一个数字序列。例例 求求100100以内的素数以内的素数 判别某数判别某数m m是否为素数最简单的方是否为素数最简单的方法是法是:对于对于m m 从从i=2i=2,3 3,m-1m-1判别判别m m能否被能否被i i整除,只要有一个能整除整除,只要有一个能整除 ,m m不是不是素数,否则素数,否则m m是素数。是素数。For m=2 For m=2 ToTo 100 100 For i=2 For i=2 ToTo m-1 m-1 If(m Mod i)=0 Then If(m Mod i)=0 Then GoTo NotNextMGoTo NotNextM Next i Next i Print m Print m NotNextM:NotNextM:Next m Next m第四十四页,共53页。4.5.2 Exit 语句语句(yj)Exit 语句用于退出语句用于退出 Do.Loop、For.Next、Function或或Sub代码块。代码块。对应的使用格式为:对应的使用格式为:Exit Do、Exit For、Exit Function、Exit Sub。分别。分别(fnbi)表示退出表示退出DO循环、循环、For循环、函数过程、子过程。循环、函数过程、子过程。例如:例如:下面的例子下面的例子(l zi)是使用是使用 Exit 语句退出语句退出 For.Next 循环、循环、Do.Loop 循环及子过程。循环及子过程。第四十五页,共53页。Private Sub Form_Click()Dim I%,Num%Do 建立无建立无穷穷(wqing)循循环环。For I=1 To 100 循循环环 100 次。次。Num=Int(Rnd*100)生成一个生成一个099的随机数。的随机数。Select Case Num Case 10:Exit For 退出退出 For.Next 循循环环。Case 50:Exit Do 退出退出 Do.Loop 循循环环。Case 64:Exit Sub 退出子退出子过过程。程。End Select Next I LoopEnd Sub第四十六页,共53页。4.5.3 End 语句语句 形式:形式:End 功能:结束一个功能:结束一个(y)程序的运行。程序的运行。在在Visual Basic中还有多种形式的中还有多种形式的End语句,用语句,用于结束一个于结束一个(y)程序块或过程。程序块或过程。其形式有:其形式有:End If End Select End With End Sub End Function等等它们与对应的语句配对使用。它们与对应的语句配对使用。第四十七页,共53页。4.5.4 暂停语句暂停语句 Stop语句用来暂停程序的执行,相当于在事件代码中设置断点。语句用来暂停程序的执行,相当于在事件代码中设置断点。语法格式为:语法格式为:Stop说明说明(shumng):1.Stop语句的主要作用是把解释程序置为中断语句的主要作用是把解释程序置为中断(Break)模式,以便模式,以便对程序进行检查和调试。可以在程序的任何地方放置对程序进行检查和调试。可以在程序的任何地方放置Stop语句,语句,当执行当执行Stop语句时,系统将自动打开立即窗口。语句时,系统将自动打开立即窗口。2.与与End语句不同。语句不同。第四十八页,共53页。4.5.5 With.End With 语句语句(yj)形式:形式:With 对象名对象名 语句语句(yj)块块 End With 说明:说明:With 语句语句(yj)可以对某个对象执行一系列的语句可以对某个对象执行一系列的语句(yj),而不用重复指出对象的名称。,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在例如,要改变一个对象的多个属性,可以在 With 控制结构中控制结构中加上属性的赋值语句加上属性的赋值语句(yj),这时候只是引用对象一次而不是在,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。每个属性赋值时都要引用它。第四十九页,共53页。4.6 常用常用(chn yn)算法算法1.累加、连乘累加、连乘 例:1100的5或7的倍数(bish)的和 Sum=0 For i=1 To 100 If i Mod 5=0 Or i Mod 7=0 Then Sum=Sum+i End If Next i Print Sum例:310的乘积(chngj)t=1 For i=3 To 10 t=t*i Next i Print t思考:若把循环体前面置各变量初值的语句放在循环体内,程序运行时会产生什么情况?第五十页,共53页。例例4.14求自然对数求自然对数e的近似值的近似值,要求其误差小于要求其误差小于0.00001,近似公式为,近似公式为:该例题涉及两个该例题涉及两个(lin)问题:问题:(1)用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。)用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。(2)累加:)累加:e=e+t 循环体外对累加和的变量清零循环体外对累加和的变量清零 e=0 连乘:连乘:n=n*i 循环体外对连乘积变量置循环体外对连乘积变量置1 n=1 Private Sub Form_Click()Dim i%,n&,t!,e!e=0 :n=1 e存放累加和、存放累加和、n存放阶乘存放阶乘 i=0 :t=1 i计数器、计数器、t第第i项的值项的值 Do While t 0.00001 e=e+t:i=i+1 累加、连乘累加、连乘 n=n*i:t=1/n Loop MsgBox(计算了计算了“&Chr(i)&项的和是项的和是&Chr(e)End Sub第五十一页,共53页。2.2.最小、最大值最小、最大值在若干个数中求最大值,一般先假设一个较在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后值,则取第一个数为最大值的初值;然后(rnhu)(rnhu)将每一个数与最大值比较,若该数将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐大于最大值,将该数替换为最大值;依次逐一比较。一比较。例随机产生例随机产生1010个个100100200200之间的整数,求最之间的整数,求最大值。大值。Private Sub Button1_Click()Dim i As Integer Dim x,Max As Integer Max=100 For i=1 To 10 x=Int(Rnd()*101+100)Label1.Text=Label1.Text&Str(x)&If x Max Then Max=x Next i Label1.Text=Label1.Text&Chr(13)&Chr(10)换行换行 Label1.Text=Label1.Text&最大值最大值=&Str(Max)End Sub第五十二页,共53页。4.7 常见错误常见错误1.不循环或死循环的问题不循环或死循环的问题 主要是循环条件、循环初值、循环主要是循环条件、循环初值、循环终值、循环步长的设置有问题。终值、循环步长的设置有问题。2循环结构中缺少配对的结束循环结构中缺少配对的结束(jish)语句语句 For 少少 配对的配对的Next 3.循环嵌套时循环嵌套时,内外循环交叉内外循环交叉4累加、连乘时,存放累加、连乘累加、连乘时,存放累加、连乘结果的变量赋初值问题结果的变量赋初值问题 (1)一重循环一重循环 在一重循环中在一重循环中,存放累加、连乘结存放累加、连乘结果的变量初值设置应在循环语句前。果的变量初值设置应在循环语句前。(2)多重循环)多重循环 这要视具体问题分别对待。这要视具体问题分别对待。第五十三页,共53页。