您好,欢迎访问三七文档
第四章VB控制结构与算法顺序结构:按“从上倒下”的顺序依次执行各语句。第一节选择控制结构条件语句也称IF语句,它有两种结构,一种是单行结构,一种是块结构。一、单行结构条件语句单行条件语句比较简单,其格式如下:If条件Thenthen部分[Elseelse部分](例1)如果“条件”为True,则执行“then部分”,否则执行“else部分”。then部分和else部分若有多条语句,应写在同一行,之间用冒号(:)隔开。例2、从键盘上输入两个数值,选出其中较大的值,并将结果输出到窗体上。二、块结构的条件语句1、块结构条件语句与C等语言中的条件语句类似,一般格式如下:If条件1Then语句块1[ElseIf条件2Then语句块2][ElseIf条件3Then语句块3]……[Else语句块n]EndIf块结构条件语句的功能是:由上至下依次判断,直到某条件为True时,执行相应的语句块,然后跳出这个块结构。If和EndIf成对出现。例32、说明:1)当“条件”是数值表达式时,非0值表示True,0值表示False。而当“条件”是关系或逻辑表达式时,-1表示True,0表示False。2)块结构与单行结构条件语句的主要区别,就是看Then后面的语句(注释语句除外)是否和Then在同一行上。如果在同一行上,则为单行结构,否则为块结构。对于块结构,必须以EndIf结束,单行结构没有EndIf。3)在块结构的条件语句中,ElseIf子句的数量没有限制,可以根据需要加入任意多个ElseIf子句。4)块结构条件语句中的ElseIf子句和Else子句都是可选的。如果省略这些子句,则块结构的条件语句简化为:If条件Then语句块EndIf5)在某些情况下,可能有多个条件为True,但也只能执行一个语句块。(例4)6)块形式的条件语句可以嵌套。3、实例讲解(例5)三、IIf函数IIf函数的格式如下:Result=IIf(条件,True部分,False部分)(例6)(例7)“Result”是函数的返回值,“条件”是一个逻辑表达式。当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时,返回“False部分”。“True部分”或“False部分”可以是表达式、变量或其他函数。注意,IIf函数中的3个参数都不能省略,而且要求“True部分”、“False部分”及结构变量的类型一致。注:如果False部分存在被0除问题,则程序将会出错(即使“条件”为True)。(例)第二节多分支控制结构一、在VB中,多分支结构程序通过情况语句来实现。情况语句也称为SelectCase语句或Case语句,它根据一个表达式的值,在一组相互独立的可选语句序列中挑选要执行的语句序列。情况语句的一般格式为:SelectCase测试表达式Case表达式表列1语句块1[Case表达式表列2[语句块2]]……[CaseElse[语句块n]]EndSelect情况语句以SelectCase开头,以EndSelect结束。其功能是,先计算“测试表达式”的值,将其值依次与各Case子句的值比较,如果匹配,则执行相应的语句块,执行完毕后跳到EndSelect语句,结束这段语句的执行。(例15:学生成绩)二、说明1、情况语句的执行过程是:先对“测试表达式”求值,然后测试该值与哪一个Case子句中的“表达式表列”相匹配;如果找到了,则执行与该Case子句有关的语句块,并把控制转移到EndSelect后面的语句。2、“表达式表列”注意事项:1)“表达式表列”有三种表达方式:(例)一组枚举值,用逗号分隔,表示“或”表达式1To表达式2Is关系运算符表达式,用逗号分隔,表示“或”2)关键字To用来指定一个范围。在这种情况下,必须把比较小的值写在前面,较大的值写在后面,字符串常量的范围必须按字母顺序写出(例:数值及大小写字母)。3)如果使用关键字Is,则只能用关系运算符。注意:当用关键字Is定义条件时,只能是简单的条件,不能用逻辑运算符将两个或多个简单条件组合在一起。(例)4)在一个SelectCase语句中,3种形式可以混用。(例)3、SelectCase语句与If…Then…Else语句块的功能类似。一般来说,可以使用块形式条件语句的地方,也可以使用情况语句。4、如果同一个域值的范围在多个Case子句中出现,则只执行符合要求的第一个Case子句的语句块。在不同的Case子句中指定的条件和相应的操作不能相互矛盾。5、在情况语句中,Case子句的顺序对执行结果没有影响,但应注意,CaseElse子句必须放在所有Case子句之后。如果在SelectCase结构中的任何一个Case子句都没有与测试表达式相匹配的值,而且也没有CaseElse子句,则不执行任何操作。三、实例讲解例8:输入月份,显示是哪个季度。例9:输入值,判断是奇数还是偶数。第三节For循环控制结构VB提供了3种不同风格的循环结构,包括计数循环、当循环和Do循环。一、计数循环For格式:For循环变量=初值To终值[Step步长][循环体][ExitFor]Next[循环变量][,循环变量]……例10:1+2+…..+100说明:1、格式中有多个参量,这些参量的含义如下:1)循环变量:也称“循环控制变量”、“控制变量”或“循环计数器”。它是一个数值变量。2)步长:不可为0。如果步长为1,则可省略不写。3)格式中的初值、终值、步长均为数值表达式,但其值不一定是整数,可以是实数,VB自动调整。2、For循环语句的执行过程是:首先把“初值”赋给“循环变量”,接着检查“循环变量”的值是否超过终值,如果超过就停止执行“循环体”,跳出循环,执行Next后面的语句,否则执行一次“循环体”,然后把“循环变量+步长”的值赋给“循环变量”,重复上述过程。这里所说的“超过”有两种含义,即大于或小于。当步长为正值时,检查循环变量是否大于终值;当步长为负值时,判断循环变量的值是否小于终值。3、在VB中,For-Next循环遵循“先检查,后执行”的原则,即先检查循环变量是否超过终值,然后决定是否执行循环体。因此,当步长为正数,但初值终值,或步长为负数,但初值终值时,循环体将不会被执行。当初值等于终值时,不管步长是正数还是负数,均执行一次循环体。4、For语句和Next语句必须成对出现,不能单独使用,且For语句必须在Next语句之前。5、循环次数由初值、终值和步长3个因素确定,计算公式为:循环次数=Int(终值-初值)/步长+16、For-Next循环可嵌套使用。(例11)7、循环变量用来控制循环过程,在循环体内可以被引用和赋值。当循环变量在循环体内被引用时,称为“操作变量”,而不被引用的循环变量叫做“形式变量”。如果用循环变量做为操作变量,当循环体内循环变量出现的次数较多时,会影响程序的清晰性。(例12)8、一般情况下,For-Next正常结束,即循环变量到达终值。但在有些情况下,可能需要在循环变量到达终值前退出循环,这可以通过ExitFor语句来实现。在一个For-Next循环中,可以含有一个或多个ExitFor语句,并且可以出现在循环体的任何位置。此外,用ExitFor只能退出当前循环,即退出它所在的内层循环。(例13)9、For-Next中的“循环体”是可选项,当该项缺省时,For-Next执行“空循环”。利用这一特性,可以暂停程序的执行。当程序暂停的时间很短,或者对时间没有严格要求时,用For-Next循环来实现暂停是一个好方法。不过,对于不同的计算机,暂停的时间也不一样。用后面介绍的While-Wend循环和Do-Loop循环也可以实现暂停。(例14)第四节当循环控制结构一、在VB当中,当循环的格式如下:While条件[语句块]Wend“条件”为一布尔表达式。当循环语句的功能是:当给定的“条件”为True时,执行循环中的“语句块”。二、当循环与For循环的区别For循环对循环执行指定的次数,当循环则是在给定的条件为True时重复一个语句序列(循环体)的执行。(例16:求1+2+…+100)Do循环,循环体中必须要有使循环结束的语句,For循环不需要例17:求1~10的乘积,即10的阶乘三、当循环的注意事项1、While循环语句先对“条件”进行测试,然后才决定是否执行循环体,只有在“条件”为True时才执行循环体。如果条件从开始就不成立,则一次循环体也不执行。2、如果条件总是成立,则不停地重复执行循环体。3、开始时对条件进行测试,如果成立,则执行循环体;执行完一次循环体后,再测试条件,如果成立,则继续执行,直到条件不成立为止。也就是说,当条件最初出现False时,或以某种方式执行循环体,使得条件的值最终出现False时,当循环才能终止。在正常使用的当循环中,循环体的执行应当能使条件改变,否则会出现死循环,这是程序设计中容易出现的严重错误,应当尽力避免。4、当循环可以嵌套,层数没有限制,每个Wend和最近的While相匹配。(例18)第五节Do循环控制结构一、Do循环的格式如下:1、Do[语句块][ExitDo]Loop[While|Until循环条件]2、Do[While|Until循环条件][语句块][ExitDo]Loop二、说明1、Do、Loop及While、Until都是关键字。“语句块”是需要重复执行的一个或多个语句,即循环体。“循环条件”是一个逻辑条件。2、While是条件为True时执行循环,而Until则是条件变为True之前重复。需要有使循环结束的语句。3、在格式(1)中,While和Until放在循环的末尾,分别叫做Do…LoopWhile和Do…LoopUntil循环,它们的逻辑流程分别如图所示。开始执行循环体计算“条件”值条件为真吗?结束YesNoDo...LoopWhile循环逻辑框图开始执行循环体计算“条件”值条件为真吗?结束YesNoDo...LoopUntil循环逻辑框图4、在格式2中,While和Until放在循环的开头,即紧跟在关键字Do之后,组成两种循环,分别叫做DoWhile…Loop循环和DoUntil…Loop循环,它们的执行过程分别如图所示。开始执行循环体计算“条件”值条件为真吗?结束YesNoDoWhile...Loop循环逻辑框图开始执行循环体计算“条件”值条件为真吗?结束YesNoDoUntil...Loop循环逻辑框图5、DoWhile|Until…Loop循环先判断条件,然后在条件满足时才执行循环体,否则不执行。6、和While循环一样,如果条件总是成立,Do循环也可能陷入“死循环”。在这种情况下,可以用ExitDo语句跳出循环。一个Do循环中可以有一个或多个ExitDo语句,并且ExitDo语句可以出现在循环体的任何地方。当执行到语句时,结束循环,并把控制转移到Do循环后面的语句。用ExitDo语句只能从它所在的那个循环中退出。7、Do循环可以嵌套,其规则与For-Next循环相同。例19:求1+2+3+…+100例20:几种Do循环的区别练习1、给定三角形的3条边长,计算三角形的面积。编写程序,判断给出的3条边能否构成三角形。2、勾股定理中3个数的关系是:a2+b2=c2。编写程序,输出30以内满足上述关系的整数组合,例如3、4、5就是一个整数组合。3、我国现有人口约为12亿,设年增长率为1%,编写程序,计算多少年后增加到20亿。4、税务部门征收所得税,规定如下:1)收入在200元内,免征;2)收入在200——400元内,超过200元的部分纳税3%;3)收入超过400元的部分,纳税4%;4)当收入达5000元或超过时,将4%税金改为5%。编程实现上述操作。5、假定有以下每周工作安排:星期一、三:讲计算机课星期二、四:讲程序设计课星期五:进修英语星期六:政治学习星期日:休息试编写一个程序,对上述工作日进行检索。程序运行后,要求输入一周里的某一天,程序将输出这一天的工作安排。在输入时用0——6分别代表星期日到星期六,如果输入0——6之外的书,则程序结束运行。6、从键盘输入一个学生的
本文标题:第四章VB控制结构
链接地址:https://www.777doc.com/doc-2167775 .html