《Visual Basic概述》-第5章 控制结构_第1页
《Visual Basic概述》-第5章 控制结构_第2页
《Visual Basic概述》-第5章 控制结构_第3页
《Visual Basic概述》-第5章 控制结构_第4页
《Visual Basic概述》-第5章 控制结构_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.1顺序结构程序设计5.1.1顺序程序的结构顺序结构就是一组逐条执行的可执行语句。按照自然的顺序编写程序,再自上而下地执行。其流程图如图5-1所示。其中,A和B分别表示要执行的语句或语句块,箭头表示语句的执行方向。下一页返回5.1顺序结构程序设计5.1.2顺序程序结构设计的方法顺序程序结构设计一般比较简单,其一般步骤为:(1)定义程序所需要的变量;(2)输入数据;(3)处理、计算数据;(4)输出数据。例5-1设计程序,用来计算圆球的表面积和体积。要求可以接收用户输入的圆球的半径长度,计算并输出圆球的表面积和体积。下一页返回上一页5.1顺序结构程序设计分析:可以使用一个文本框输入圆球的半径长,通过一个单精度变量获取文本框中的数值,利用数学公式对数据进行计算,用标签控件把结果显示出来。已知圆球的半径R的值,求圆球的表面积和体积的公式为:S=4*3.14*R*R;V=4/3*3.14*R*R*R(1)设计界面在窗体上建立4个标签、1个文本框和2个命令按钮。设置各对象的属性,如表5-1所示。设计完成的界面如图5-2所示。下一页返回上一页5.1顺序结构程序设计(2)编写代码双击“计算表面积”和“计算体积”按钮,在框架中输入代码如下:DimR’‘全局变量PrivateSubCommand1Click()DimS!R=Val(Text1.Text)S=4*3.14*R*RLabel3.Caption="圆球的表面积:”&Str(S)EndSub下一页返回上一页5.1顺序结构程序设计PrivateSubCommand2Click()DimV!R=Val(Text1.Text)V=4/3*3.14*R*R*RLabel4.Caption="圆球的体积:“&Str(V)EndSub运行程序,在文本框中输入数值,如输入1,单击“计算表面积”和“计算体积“按钮,便可显示出相应的结果。上述程序中,半径R定义为全局变量;val()是VB的一个内部函数,它的作用是将数字字符串转换为数值。返回上一页5.2

选择结构程序设计选择结构也称分支结构,是用来描述、处理分支现象的重要手段。是学习VB程序设计基本思路和方法的重点。在选择结构中,根据条件是否成立(条件为真为假),来选择执行多个分支中的某一分支的分支的语句。与顺序结构不同,选择结构中的代码并不是依次顺序执行的,它能够根据给定的条件而选择执行不同的代码。在计算机科学中,选择结构是用来描述自然界和社会生活中分支现象的重要手段和方法,它和我们的日常生活有密切联系。生活中,我们也经常面对选择,需要对给定的条件进行分析、判断,并根据判断的结果采取不同的行动。下一页返回5.2

选择结构程序设计例如,在走到十字路口时,需要根据信号灯的情况来判断是否前行。如果是红灯,则停止前行;如果是绿灯,则可以前行。在设计程序时,也需要根据不同的情况采用不同的处理方法。选择结构的特点是:根据所给定的条件为真(即条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作,并且任何情况下总有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。本章中,将学会运用相关语句来设计选择结构程序。下一页返回上一页5.2

选择结构程序设计5.2.1条件表达式条件表达式,即关系表达式。1.关系运算符关系运算符的作用是对两个表达式的值进行比较,若关系成立,则返回True,否则返回False。VB提供了6种关系运算符,如表5-2所示。2.关系表达式关系表达式是指用关系运算符将两个表达式连接起来的式子(例如2*3>2+3),关系表达式的格式为:<表达式1><关系运算符><表达式2>[<关系运算符><表达式3)...]下一页返回上一页5.2

选择结构程序设计例如:(a+b)>(c+d)就是一个关系表达式。在关系表达式中,应注意以下几点:(1)在关系表达式中,先进行算术运算,再进行关系运算。例如,在式子"x+y<z-d”中,先计算“x+y”和“z-d",然后进行<的比较。(2)运算的结果不是数值,而是一个逻辑值。当关系成立时为真,其值为-1;当关系不成立时为假,其值为0。(3)关系运算符除了能对数值量进行比较外,还可以用来对字符串型量进行比较。例如,“good”<“well”比较的结果为真值-1。下一页返回上一页5.2

选择结构程序设计5.2.2简单的if语句其语法格式为:If<条件表达式>Then

语句体

Endif或If<条件表达式>Then语句体第一种格式称为块结构,第二种格式称为单行结构。下一页返回上一页5.2

选择结构程序设计这是一种最简单的if语句,只要条件为真或为非0数值,就执行then后的语句;当条件为假或是一个为0的数值时就执行if下面的语句。其中,语句体可以是一条或多条语句。当采用第二种格式时,所有的语句体必须写在同一行,用冒号隔开。其流程图如图5-3所示。例5-2输入x,计算y的值(即计算分段函数y的值)。其中:设计步骤如下:(1)建立应用程序用户界面并设置对象属性,如表5-3所示。下一页返回上一页5.2

选择结构程序设计(2)编写事件代码。命令按钮Command1的单击Click事件代码为:PrivateSubCommand1Click()DimxAsSingle,yASSingle

‘定义x,y为单精度数x=Val(Text1.Text)‘输入x的值Ifx>=0Then

y=xElsey=-x‘判断并计算

Text2.Text=y‘输出结果

Tekt2.Locked=TrueEndSub程序运行结果如图5-4所示。下一页返回上一页5.2

选择结构程序设计5.2.3双分支选择If…then…else结构If…Then…Else语句属于双分支结构语句,书写格式也有两种:单行结构和块结构。其语法格式为:If<条件表达式>Then

语句体1Else语句体2下一页返回上一页5.2

选择结构程序设计Endif

If<条件表达式>Then语句体1else语句体2同上,第一种格式称为块结构,第二种格式称为单行结构。说明:在“块结构”条件语句,If和Endif必须成对出现。当条件表达式的值为True时,执行语句体1;当条件表达式的值为False时,执行语句体2,如图5-5所示。下一页返回上一页5.2

选择结构程序设计举个简单的例子:求X和Y中的最大数,将最大数存储在变量Max中,用双分支结构语句实现:IfX>YThenMax=XElseMax=Y

或:IfX>YThenMax=XElseMax=YEndif下一页返回上一页5.2

选择结构程序设计例5-3判断文本框中输入的是否为数值型数据。设计步骤如下:(1)建立应用程序用户界面并设置对象属性,如表5-4所示。(2)编写事件代码。命令按钮Command1的单击Click事件代码为:PrivateSubCommand1Click()Ifisnumeric(text1)ThenMaghox”是数字”‘弹出消息框下一页返回上一页5.2

选择结构程序设计

ElseMaghox"不是数字”

EndifEndSub程序运行结果如图5-6所示。本例中isnumeric()函数是一个系统函数,用来判断一个数据是否为数字型数据,若是则返回true,否则返回false。这里对文本框中的字符进行判断,如果输入的字符都是数字,则弹出的消息框提示“是数字”,否则提示“不是数字”。下一页返回上一页5.2

选择结构程序设计5.2.4多分支选择语句虽然单行If语句使用方便,可以满足许多选择结构程序设计的需要,但是当Then部分和Else部分包含较多内容时,在一行中就难以容纳所有命令。为此,VB提供了块If语句和select语句,将一个选择结构用多个语句行来实现。如图5-7所示。1.If…Then…Elself语句(也称块If语句)(1)语法格式:IF条件1Then

语句块1下一页返回上一页5.2

选择结构程序设计

[ElseIf条件2Then

语句块2]…[ElseIf条件nThen

语句块n]…[Else

语句块n+1]EndIf下一页返回上一页5.2

选择结构程序设计(2)说明:语句块1到语句块n+1中只有一个被执行,无论哪个被执行后,流程都会到EndIf后下一条语句去。EIseIF不能写成ElseIf。当多分支中有多个条件同时满足,则只执行第一个与之匹配的语句块。因此,要注意对多分支的条件的书写次序,防止某些值被过滤。If和EndIf必须成对出现。下一页返回上一页5.2

选择结构程序设计(3)功能:依次测试条件1到条件n,当条件i成立时(i为1到n之间的整数),执行语句块i,然后执行EndIf后面的下一条语句;如果所有的条件都不成立,并且Else

语句块n+1

存在,则执行语句块n+1。例5-4输入某位学生的百分制成绩,要求输出成绩的等级:假设90分以上为A等,80~89分为B等,70~79分为C等,60~69为D等,60分以下为E等。下一页返回上一页5.2

选择结构程序设计编写事件代码。命令按钮Command1的单击Click事件代码为:PrivateSubFormClick()DimScoreAsIntegerScore=InputBox(“请输入学生的百分制分数”)IfScore>=90ThenMsgfBox”学生的成绩为A等”

ElseIfScore>=80ThenMsgBox”学生的成绩为B等”

EleelfScore>=70Then下一页返回上一页5.2

选择结构程序设计MsgBox”学生的成绩为C等”ElseIfScore>=60ThenMsgBox”学生的成绩为D等”ElseMsgBox”学生的成绩为E等”EndIfEndSnb运行结果如图5-8所示:下一页返回上一页5.2

选择结构程序设计与单行条件语句相比,块结构语句有很多优点。例如块形式比单行形式提供了更好的结构和灵活性,它允许条件分支跨越数行。同时,用块形式可以测试更为复杂的条件。块形式使程序的结构按照逻辑来引导,而不是把多个语句放在一行中。此外,使用块形式的程序一般容易阅读、维护和调试。任何单行形式的条件语句都可以改写成块形式。2.SelectCase语句SelectCase语句(又称为情况语句)。SelectCase语句是根据一个表达式的值,判断它的所属范围,选择执行不同的语句块,是多分支选择的另一种语句实现方法。可以取代If…Then…ElseIf语句。如图5-9所示。下一页返回上一页5.2

选择结构程序设计(1)格式:SelectCase测试表达式

Case表达式列表1语句块1Case表达式列表2语句块2…Case表达式列表n语句块n[CaseElse

语句块n+1]EndSelect下一页返回上一页5.2

选择结构程序设计(2)功能:根据测试表达式的值,依次与表达式列表1到表达式列表n所描述的“域值”范围进行比较,如果与表达式列表i的“域值”范围相匹配,则选择执行语句块i(i为1到n之间的整数),然后到EndCase后下一条语句去。如果与所有表达式列表的“域值”范围都不匹配,并且Else语句块n+1存在,则执行语句块n+1,然后到EndCase后下一条语句去。其流程见图:(3)说明:①表达式列表1是由逗号分隔开的下列3种成分组成:表达式。下一页返回上一页5.2

选择结构程序设计表达式1To表达式2。Is关系表达式。表达式的形式如表5-5所示。②表达式列表1到表达式列表n的值与测试表达式的值的类型必须相同。③如果测试表达式的值与多个表达式列表i中的“域值”范围相匹配,则选择执行相匹配的第一个Case表达式列表i后面的语句块。④语句块1到语句块n+1中只有一个被执行,无论哪个被执行后,流程都会到EndCase后下一条语句去。下一页返回上一页5.2

选择结构程序设计⑤SelectCase和EndCase必须成对出现。例5-5某商店进行购物打折优惠活动促销,根据每位顾客一次性购物的消费额给予不同的折扣,具体方法如下:(1)购物1500元以上的九五折优惠;(2)购物2000元以上的九折优惠;(3)购物2500元以上的八五折优惠;(4)购物4000元以上的八折优惠。程序代码如下:PrivateSubCommand1Click()下一页返回上一页5.2

选择结构程序设计DimxAsSingle,yAsSinglex=InputBox(”请输入购物金额:”)SelectCasexCaseIs<1000Print“不优惠”

y=xCaseIs<2000Print“九五折优惠”y=0.95*x下一页返回上一页5.2

选择结构程序设计CaseIs<3000Print”九折优惠”y=0.9*xCaseIs<5000Print”八五折优惠”

y=0.85*kCaseIs>=5000Print"八折优惠”

y=0.8*x下一页返回上一页5.2

选择结构程序设计EndSelectPrint”优惠后应收款额为:”;yEndSub程序的运行结果如图5-10所示。也可以用If…Then…ElseIf语句实现:PrivateSubFormClick()DimxAsSingle,yAsSingle

x=InputBox(”请输入购物金额:”)Ifx<0ThenPrint"输入的金额有误”下一页返回上一页5.2

选择结构程序设计ElseIfx<1500ThenPrint“不优惠”

y=xElseIfx<2000ThenPrint“九五折优惠”

y=0.95*xElseIfx<2500ThenPrint“九折优惠”

y=0.9*xElseIfx<4000ThenPrint”八五折优惠”

y=0.85*x下一页返回上一页5.2

选择结构程序设计ElsePrint“八折优惠”

y=0.8*xEndIfPrint”优惠后应收款额为:”;y

EndSub从上述例题中,读者可以发现,同一个问题可以用SelectCase语句实现,也可以用If…Them…ElseIf语句实现。下一页返回上一页5.2

选择结构程序设计例5-6编写一个对输入字符进行转换的程序。转换规则为,将其中的大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。要求每输入一个字符,马上就进行判断和转换。分析:(1)建立应用程序的用户界面,如图5-11所示。(2)设计对象属性,如表5-6所示。(3)编写事件代码。根据题中要求,当在“输入字符串”文本框中,每输入一个字符键马上就进行判断,这就要求对“输入字符串”文本框对象Text1对应的KeyPress事件进行编程。下一页返回上一页5.2

选择结构程序设计程序编制如下:PrivateSubText1KeyPress(KeyAsciiAsInteger)DimasASString*1aa=Chr$(KeyAscii)‘将ASCII码转换成字符SelectCaseaaCase"A"To"Z"‘大写转换成小写aa=Chr$(KeyAscii+32)Case“a”To“z”‘小写转换成大写aa=Chr$(KeyAscii-32)下一页返回上一页5.2

选择结构程序设计Case“”

aa=“”CaseElseaa=“*”EndSelectText2.Text=Text2.Text&aa‘将文本框中已有的内容与转换字符连按EndSub‘命令按钮Command1的Click事件代码:PrivateSubCommand1Click()Text1.Text=“”

Text2.Text=“”EndSub下一页返回上一页5.2

选择结构程序设计‘命令按钮Command2的Click事件按钮:PrivateSubCommand2Click()UnloadMeEndSubKeyPress为键盘事件,键盘的一个按下和释放时触发该事件。调用过程中该事件可以引用键盘字符,并通过参数KeyAscii向对象发送字符的内容。"DimasAsString*1”是定义长度为1的字符串变量。(4)程序运行结果如图5-12所示。可以看出输入字符串里的大写字母会转换为小写字母,小写字母则转换为大写字母。返回上一页5.3

循环结构程序设计前面介绍了顺序结构和选择结构,和它们一样,循环结构也是结构化程序设计中常用的一种基本流程控制结构。在实际应用中,经常遇到一些操作并不复杂,但需要反复执行多次的问题,比如计算累加和、统计次数等。对于这类问题,如果用顺序程序来处理,既烦琐又难于实现,这种情况下就要使用循环流程控制结构来实现。循环是指在一定条件下反复执行一段代码,被反复执行的程序段称为循环体。使用循环可以避免重复不必要的操作,简化程序,节省内存,从而提高效率。下一页返回5.3

循环结构程序设计一般来说,一个循环体结构应该有4个主要部分组成:(1)循环体,是循环程序的主要部分。(2)循环变量,它有规律地发生变化,保证循环过程中,有关的量能按一定规律变化。(3)循环条件,即循环体重复执行的条件,控制循环正确执行,并能结束循环。(4)循环的初始部分,保证循环能够开始执行的程序。一般写在循环的开头部分,逻辑上先从这部分开始执行。在具体编写程序过程中,有时很难将这几部分明确分开,它们的位置经常相互包容,但循环的初始部分(初值)一般放在循环的前面。下一页返回上一页5.3

循环结构程序设计循环是在指定的条件下多次重复执行一组语句。VisualBasic中提供了多种形式的循环结构,最主要的有For…Next循环语句和Do…Loop循环语句两种。它们的区别是For…Next循环语句知道具体的循环次数;而Do…Loop语句并不知道确切的次数,通常由一个条件来终止循环。1.For循环语句For…Next是使用最灵活、最方便的一种循环语句,通常用于循环次数已知的情况。其语法形式如下:下一页返回上一页5.3

循环结构程序设计For循环变量=初值to终值[Step步长]

语句块

[ExitFor]

语句块

Next循环变量说明:(1)循环变量、初值、终值、步长必须为数值型。(2)步长是循环变量的增量,一般为正,此时初值小于终值;若为负,这时初值大于终值;步长不能为零,若步长为1,则step1可以省略不写。下一页返回上一页5.3

循环结构程序设计(3)语句块可以是一条或多条语句。(4)ExitFor表示当遇到该语句时,退出循环,执行Next的下一条语句。(5)For循环语句执行的过程如下:①循环变量被赋初值,它仅被赋值一次。②判断循环变量是否在终值内,若是,则执行循环体;若否,则结束循环,执行Nexl的下一语句。③循环变量加步长,转②,继续循环。其中循环次数由初值、终值、步长确定,计算公式为:循环次数=int((终值-初值)/步长+1)当步长>0时,For…Next循环语句结构如图5-13所示。下一页返回上一页5.3

循环结构程序设计例5-7用For…Next循环方式求n!,n的值由用户从键盘输入。分析:由阶乘的定义易知n!=P(n-1)!*n,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘的乘积。(1)设计界面:设置对象属性,如表5-7所示。(2)编写代码:命令按钮的Click事件代码如下:PrivateSubCommand1Click()DimpAsDouble,nAsInteger,iAsInteger下一页返回上一页5.3

循环结构程序设计n=Val(Textl.Text)p=1Fori=1Tonp=p*!NextTekt2.Text=pEndSub程序运行结果如图5-14所示。说明:p定义为Double型,目的是当整数取值较大时,防止阶乘出现溢出。下一页返回上一页5.3

循环结构程序设计例5-8用For…Nexl循环方式求1+2+3+…+100的值。分析:采用累加的方法,用变量sum来存放“累加和”(开始为0),用变量i来存放“加数”(加到sum中的数)。这里i又作为循环计数器,从1开始计数到100。(1)设计界面:设置对象属性,如表5-8所示。(2)编写代码:命令按钮“计算”的Click事件代码如下:PrivateSubCommand1Click()下一页返回上一页5.3

循环结构程序设计DimiAsInteger,sumAsIntegersum=0Fori=1To100Step1sum=sum+1NextText1.Text=sumEndSub下一页返回上一页5.3

循环结构程序设计命令按钮“计算”的。vlick事件代码如下:PrivateSubCommand2Click()EndEndSub程序运行结果如图5-15所示。在循环结构中,最常用的算法就是累加、累乘。通过以上两个例子可以看出,一般累加和累乘是通过循环结构和循环体内的一条表示累加和累乘的语句来实现的。另外,还必须设置两个变量存储累加和、累乘积,分别称为累加器和累乘器。上面的两个例子中,sum称为累加器,p称为累乘器。要注意sum的初值为0,p的初值为1,赋初值的操作一定要在循环执行前的循环体外进行。下一页返回上一页5.3

循环结构程序设计2.Do…Loop循环语句Do循环用于控制循环次数未知的循环结构。可以实现当型循环也可以实现直到型循环。此种语句有两种语法形式,分别如下。形式1(前测型Do…Loop循环):Do[While|Until<条件>

语句块

[ExitDo]

语句块

Loop下一页返回上一页5.3

循环结构程序设计形式2(后测型Do…Loop循环):Do

语句块

[ExitDo]

语句块

Loop[While|Until<条件<说明:(1)形式1(前测型Do…Loop循环结构)是首先判断条件,根据条件决定是否执行循环体,循环有可能一次也不执行;形式2(后测型Do...Loop循环结构)是首先执行循环体,下一页返回上一页5.3

循环结构程序设计然后判断条件,根据条件决定是否继续执行循环,因此执行循环的最少次数为1。两种形式(指While)的流程分别见图5-16(a)和(b)。(2)关键字[While|until决定循环是当型循环还是直到型循环。若While是当型循环;若Until是直到型循环。(3)关键字While用于指明条件为True时就执行循环体中的语句,条件为False时就终止循环,Until正好相反。(4)ExitDo表示当遇到该语句时,退出循环,执行Loop的下一语句。(5)当省略[While|Until<条件>子句时,循环结构仅由Do...Loop关键字构成,表示无条件循环,这时循环体内应该有ExitDo语句,否则为死循环。下一页返回上一页5.3

循环结构程序设计例5-9用Do...Loop循环结构实现例5.8,即求1+2+3+…+100的累加和。方法一:PrivateSubCommand1Click()DimiAsInteger,sumAsIntegersum=0i=1下一页返回上一页5.3

循环结构程序设计DoWhile1<=100sum=sum+1i=i+1LoopText1.Text=sumEndSub方法二:PrivateSubCommand1Click()DimiAsInteger,sumAsInteger下一页返回上一页5.3

循环结构程序设计sum=0i=1DoUntili<lUUsum=sum+1i=i+1LoopText1.Text=sumEndSub下一页返回上一页5.3

循环结构程序设计本例中,除方法一和方法二外,可以用Do循环的其他方式来实现以看出Do循环在使用格式上非常灵活。由此可该事件代码还可以利用ExitDo来编写:PrivateSubCommand1Click()DimsAsInteger,nAsIntegersum=0:i=1Dosum=sum+ii=i+1下一页返回上一页5.3

循环结构程序设计Ifn<100ThenExitDo‘跳出循环LoopText1.Text=sumText1.Locked=TrueEndSub本例中,ExitDo的作用是跳出循环结构,强制结束循环,执行Ioop后的下一条语句。下一页返回上一页5.3

循环结构程序设计3.While循环除了前面介绍的几种循环,在VB语言中还提供了更加方便的While循环。其格式为:While<条件表达式>

循环体

Wend说明:下一页返回上一页5.3

循环结构程序设计(1)<条件表达式>:为关系或逻辑型,若为数值型,以0表示False,非0表示True。在While执行循环时,首先测试“条件表达式”是否为真。(2)While循环语句本身不能修改循环条件,所以必须在While…Wend语句的循环体内设置相应的语句,使整个循环趋于结束,以避免造成死循环。(3)进入循环前,应为循环控制变量赋值,以使循环条件为真。(4)While循环语句应先对条件进行判断,然后才决定是否执行循环体。如果开始条件就不成立,则循环体一次也不会执行。While循环结构的流程图如图5-17所示。下一页返回上一页5.3

循环结构程序设计例5-10用While…Wend编程计算1+2+3+…+100的值。PrivateSubCommand1Click()Dim

sAsSingle,iASIntegeri=1Whilei<=100sum=sum+ii=i+1WendPrint"1+2+3+…100”;sEndSub下一页返回上一页5.3

循环结构程序设计While循环语句本身不能修改循环条件,所以必须在While…Wend语句的循环体内设置相应的语句,使循环趋于结束,以避免“死循环”,例如本例中的语句i=i+1就是使循环趋于结束的语句。例5-11我国有13.5亿人口,设年增长率为0.05%,多少年后超过26亿。分析:定义单精度变量m和整型变量year分别表示现有人口和年数,可根据公式m=1350000000(1+0.8%)n,利用While循环求得n.窗体的Click事件过程代码如下:PrivateSubFormClick()DimmAsSingle,yearAsSingleyear=0下一页返回上一页5.3

循环结构程序设计m=1350000000Whilem<=2000000000m=m*(1+0.005)year=year+1WendPrint:PrintPrintFear;”年后,我国人口将达到”;mEndSub程序运行结果如图5-18所示。下一页返回上一页5.3

循环结构程序设计5.3.3循环嵌套在一个循环体内又出现另外的循环语句称为循环嵌套,也称为多重循环。嵌套可以包含多层,有几层嵌套,就称为几重循环。各种语言中关于循环嵌套的概念都是一样的。在解决实际问题时,许多问题要用二重或多重循环才能解决,但嵌套层次不宜过多。已经学过的For循环、While循环、Do...Loop循环都可以用于循环嵌套,并且可以相互嵌套。对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名。(2)外循环必须完全包含内循环,不能交叉。下一页返回上一页5.3

循环结构程序设计(3)不能从循环体外转向循环体内,也不能从外循环转向内循环,反之则可以。(4)在使用ExitDo或ExitFo:退出循环时,只能退出其所在的最内层循环,而不是一次退出多层循环。例如,下面的程序中退出循环的位置如箭头所示。Fori=1to5Forj=1to6Printi,j下一页返回上一页5.3

循环结构程序设计(5)多重循环的执行过程是:外层循环执行一次,内层循环要从头到尾全部执行一遍。例如:Fori=1to5Forj=1106Printi,jExitforNextjNexti在以上的二重循环中,外层循环变量i取1时,内层循环要执行6次(j变化依次是1,2,3,4,5,6);外层循环变量i取2时,下一页返回上一页5.3

循环结构程序设计内层循环又要执行6次(j变化依次是1,2,3,4,5,6)……这样执行下去,循环一共执行了5*6=30(次)。例5-12利用二重循环,在屏幕上输出以下图形。*********************************************分析:本例中每一行重复输出9个星号,重复输出4行,所以可以用二重循环来实现。用变量i控制行的输出,变量l控制一行中星号的输出。下一页返回上一页5.3

循环结构程序设计程序代码如下:PrivateSubCommand1Click()Fori=1To5Forj=1To9Print"*”NextjPrintNextiEndSub程序运行结果如图5-19所示。返回上一页5.4本章实例选择结构和循环结构的程序设计在实际应用中较为广泛,通常是把这两种结构结合起来使用,下面通过一些例子加以说明。例5-13登陆界面的设计分析:在窗体上输入账号和密码,并对输入的数据进行有效性和正确性检查。参考界面如图5-20所示,设置对象属性如表5-9所示。程序代码如下:PrivateSubcmdclearClick()txtuser.Text=“”txtpwd.Text=“”EndSub下一页返回5.4本章实例PrivateSubcmdokClick()Iftxtuser=“”Ortxtpwd=“”MagBox“请输入完整信息!”ElseIftxpwd<>”710123”ThenMagBox”密码有错,不能登陆!”txtpwd=“”

txtpwd.SetFocus下一页返回上一页5.4本章实例ElseMegBox"txtuser.text&欢迎您!”EndIfEndIfEndSub例5-14已知m个学生进行n个科目的考试,请计算每个同学的平均分。分析:本例是一个循环嵌套的问题,注意掌握其中的技巧与方法。外层循环对应每个学生,内层循环对应每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论