收藏 分享(赏)

第07章 VB的控制结构.ppt

上传人:hskm5268 文档编号:6919840 上传时间:2019-04-27 格式:PPT 页数:48 大小:234KB
下载 相关 举报
第07章  VB的控制结构.ppt_第1页
第1页 / 共48页
第07章  VB的控制结构.ppt_第2页
第2页 / 共48页
第07章  VB的控制结构.ppt_第3页
第3页 / 共48页
第07章  VB的控制结构.ppt_第4页
第4页 / 共48页
第07章  VB的控制结构.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、第七章 VB的控制结构,第一节 选择控制结构,第一节 选择控制结构,一、单行结构条件语句,格式:If条件Then then部分 Else else部分,功能:如果“条件”为True,则执行“then部分”,否则执行“Else部分”。,说明:“Then”和“Else” 部分操作完全相同。 语句GoTo行号(或行标号) 其中“语句”可以是条件语句,即条件语句可以嵌套,其深度(嵌套层数)没有具体规定,但受到每行字符数(1024)的限制。,例:If X = Y Then Print “X=Y“Print “XY“,例:If X = Y Then Print “X=Y“ Else Print “XY“,

2、Private Sub Form_Click()Dim x As Single, y As Singlex = InputBox(“请输入X的值“)If x 0 Then y = 1 Else If x = 0 Then y = 0 Else y = -1Print “x=“; x, “y=“; y End Sub,二、块结构条件语句,格式:If条件1 Then 语句块1 ElseIf条件2 Then 语句块2 ElseIf条件3 Then 语句块3 Else 语句块n End If,执行过程是:先测试“条件1”,如果该条件为True,则执 行Then后面的“语句块”;如果“条件1”为Fals

3、e, 则 Visual Basic 顺序测试每个 Else If子句中的 “条件”,当发现某个“条件”为True时,就执行与 其相关的Then后面的“语句块”;如果所有ElseIf 子句的“条件”都不为True,则执行Else后面的“语 句块n”.在执行了Then或Else后面的语句块之后, 程序退出块结构条件语句,继续执行End If后面 的语句。,说明: “语句块”可以是一个语句,也可以是多个语句, 写时可多行、一行(冒号隔开)。,“条件”逻辑表达式(数值、关系表达式可看作逻辑表达式的特例)数值表达式: 0 , False , 非0,True关系、逻辑: 0,False , -1,True

4、,发现条件为True时,就执行其相关的Then后面的“语句块”。全否,执行 Else.,“语句块”中的语句不能与其前面的Then在同一行上。,ElseIf 子句的数量没有限制。,ElseIf 子句和Else子句都是可选的。缺省格式:If 条件 Then语句块End If也可写成单行形式。,执行完第一个If (True)后跳出If结构。,块形式的条件语句可以嵌套,但不能互相“骑跨”。,例 7.1设计一个程序,从键盘上输入学生的分数,计算并输出(大于或等于60分)、不及格人数及总平均分数。运行结果如下图。,三、IIf函数,格式:result=IIf(条件,True部分,False部分),说明: “

5、result”是函数的返回值,“条件”是一个逻辑表达式,当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时返回“False部分”。 “True部分”或“False部分”可以是表达式、变量或其他函数。注意,IIf函数中的三个参数都不能省略,而且要求“True部分”、“False部分”及结果变量的类型一致。,四、条件语句和IIf函数的正确使用,注意:,(1)单行形式与块形式条件语句的惟一区别,就是看Then后面的语句(注释语句除外)是否和 hen在同一行上。如果在同一行上,则为单行结构,否则为块结构。对于块结构,必须以End If结束,而单行结构没有End If。,(2)条件语句

6、中的“条件”并不只是限于使用关系表达式或逻辑表达式,任何合法的Visual Basic表达式都可以作为条件语句中的“条件”,只要表达式的值为非0,其条件即为“真”。,例1: If a b Then Print “ab“ Else Print “ab“ End If 是块结构条件语句,而 If ab Then Print“ab“Else Print“ab“ 是等效的单行结构条件语句,两者的功能完全相同。,例2: a=3 If a0 Then Print“a0“Else Print“a等于0“ 这里的“a0”是一个关系表达式,由于a=3,该表达式的值为“真”,因此执行“Print a0”,结果为T

7、rue。如果改为 If a Then Print“a0“Else Print“a等于0“ 则结果完全相同。,(3)在某些情况下,可能有多个条件为True,但也只能执行一个语句块。,(4)块形式的条件语句可以嵌套,即把一个 IfThenElse块放在另一个IfThenElse块内。嵌套必须完全“包住”,不能互相“骑跨”。,(5)IIf函数是条件语句的简写形式,类似于C语言中的条件表达式。该函数有3个参数,其中第一个参数是Boolean值,如果该参数的值为True,则函数返回第二个参数的值,否则返回第三个参数的值。和条件语句中的IIf函数中的第一个参数可以是关系表达式或逻辑表达式,也可以是数值表达

8、式。如果表达式的值为0,则该参数为False,否则为True。,例3: a=3 r = IIf(a, “a 0“, “a = 0“) Print r 输出结果为“a0”。,例4: Private Sub Form_Click()Dim a As Integera = InputBox(“请输入x的值“)r = IIf(a 5, 1, 2)Print rEnd Sub,第二节 多分支控制结构,一、Select Case语句,格式:Select Case测试表达式 Case表达式表列1 语句块1 Case表达式表列2 语句块2 Case Else 语句块n End Select,先对“测试表达式”

9、求值,然后测试该值与哪 一个Case子句中的“表达式表列”相匹配;如果 找到了,则执行与该Case子句有关的语句块, 并把控制转移到End Select后面的语句;如果 没有找到,则执行与Case Else子句有关的语句 块,然后把控制转移到End Select后面的语句。,三、注意事项,二、情况语句执行过程,1.情况语句中,如果Case子句中的表达式与Select Case语句中的测试表达式匹配,则执行与该Case子名相关的语句块。其中Case子句中的表达式有三种形式,在使用时应注意以下几点:,(1)在Case子句中可以有多个数值表达式或字符串表达式,各表达式之间用逗号隔开。,(2)可以在C

10、ase子句中用关键字T0指定一个范围。,(3)可以在Case子句中用关键字Is指定一个范围。与关键字T0不同,如果使用关键字Is,则必须用关系运算符来指定范围(只能是简单的条件,不能用逻辑运算符将两个或多个简单条件组合在一起)。,(4)在一个Select Case语句中,三种形式可以混用。 例如: Case IsLowerbound,5,6,1 2,Isuperbound Case Is“HAN“,“Mao“To“Tao“,2.在情况语句中,Case子句的顺序对执行结果没有影响,但是应注意,Case Else子句必须放在所有的Case子句之后。如果在Select Case结构中的任何一个Cas

11、e 子句都没有与测试表达式相匹配的值,而且也没有Case Else子句,则不执行任何操作。,3.在不同的Case 子句中指定的条件和相应的操作不能相互矛盾。,如:Select Case aCase 1Print 1Case 1 To 3Print 2End Select,4.Select Case语句与IfThenElse语句块的功能类似。,Sub Form_Click()msg$ = “Enter data“Var = InputBox(msg$)Select Case VarCase 1Print “One“Case 2Print “Two“Case 3Print “Three“Case

12、ElsePrint “Must be integer from 1 to 3“End Select End Sub,Sub Form_Click()msg$ = “Enter data“Var = InputBox(msg$)If Var = 1 ThenPrint “One“ElseIf Var = 2 ThenPrint “Tow“ElseIf Var = 3 ThenPrint “Three“ElsePrint “Must be integer from 1 to 3“End If End Sub,例 7.2从键盘上输入字母或09的数字,编写程序对其进行分类。,提示:字母分大小写,数字分

13、奇数和偶数。,第三节 For循环控制结构,计数循环(For-Next循环) 当循环(While-Wend循环) Do循环(Do-Loop循环),反复多次处理的问题,诸如人口增长统计,银 行存款利率的计算等。,一、For-Next循环语句,格式:For 循环变量=初值 To 终值 Step步长 循环体 Exit For Next循环变量,循环变量 ,执行过程是:先首先把“初值”赋给“循环变量”,接着检 查“循环变量”的值是否超过终值,如果超过就停 止执行“循环体”,跳出循环,执行Next后面的 语句;否则执行一次“循环体”,然后把“循环变 量+步长”的值赋给“循环变量”,重复上述过程。,一、正确

14、使用For-Next循环,1.For-Next执行固定次数的循环,循环次数可以通过循环的初值、终值和步长值计算出来。循环次数=Int(终值-初值)/步长+1,2.循环变量的初值、终值可以是正值、负值或0,而步长可以是正值或负值,可以是整数或小数。,3.当步长为0时,循环变量保持不变,始终等于初值,而不会超过终值,因此循环永远不会停止,出现“死循环”。,4.如果在循环体内改变循环变量的值,则循环次数不能通过前面的公式计算出来,在这种情况下,For-Next就不是固定次数的循环。,5.在Visual Basic中,For-Next循环遵循“先检查,后执行”的原则,即先检查循环变量是否超过终值,然后

15、决定是否执行循环体。,6.For语句和Next语句必须成对出现,不能单独使用,且For语句必须在Next语句之前。,7.在一般情况下,For-Next正常结束,即循环变量到达终值。但在有些情况下,可能需要在循环变量到达终值前退出循环,这可以通过Exit For语句来实现。,8.循环变量用来控制循环过程,当循环变量在循环体内被引用时,称为“操作变量”,而不被引用的循环变量叫做“形式变量”。,例1: Sub Form_Click()For x = 1 To 100 Step 1Sum = Sum + xNext xPrint “Sum=“; SumEnd Sub,例2: T=0For I = 2

16、To 10 Step 2T = T + IPrint TNext I,例3: Sub Form_Click()For i = 1 To 100For j = 1 To 100Print i + j;If i * j 5000 Then Exit ForNext jNext i End Sub,例 7.3 求N!(N为自然数)。,例 7.4 有如下10个数:-2,73,82,-76,-1,24,321,-25,89,-20 编写一个程序,打印出其中的每个负数,分别计算并输出正数及负数的和。,第四节 当循环控制结构,一、While语句,格式:While条件 语句块 Wend 其中“条件”为一布尔表

17、达式。,执行过程是:“条件”为True(非0值),则执行“语句块”,当遇到Wend语句时,控制返回到While语句并对 “条件”进行测试,如仍然为True,则重复上述过 程,如果“条件”为False,则不执行“语句块”,而 执行Wend后面的语句。,当循环与For循环的区别是:For循环对循环体执行指定的次数,当循环则 是在给定的条件为True时重复一语句序列(循环体) 的执行。也就是说,当循环可以指定一个循环终止 的条件,而For循环只能进行指定次数的重复。因 此,当需要由数据的某个条件是否出现来控制循环 时,就不宜使用For循环,而应使用当循环语句来 描述。,二、正确使用当循环,1.当循环

18、与For循环的不同之处,是“当条件成立时” 执行循环,因此当循环有时也称条件循环。,(1)在循环之前。当循环首先检测条件是否成立,只有条件成立才能进入While-Wend循环。,(2)在While语句中(即While关键字的后面)。循环之前提供进入循环的条件,在While语句中对这个条件进行测试,如果满足条件则执行循环体,否则结束循环。,(3)循环体的执行应当能使条件改变,否则会出现 死循环。,(4)在循环体内。当条件最初出现False,或是以某种方式执行循环体,使得条件的求值最终出现False时,当循环才能终止。,2.While循环语句先对“条件”进行测试,然后才决定是否执行循环体,只有在“

19、条件”为True时才执行循环体。,3.当循环可以嵌套,层数没有限制,每个Wend和最近的While相匹配。,例1 While b 0c = c + ab = b - 1Wend,例 7.5 从键盘上输入字符,对输入的字符进行计数,当输入的字符为“?”时,停止计数,并输出结果。,例 7.6 编写程序,判断一个整数(=3)是否为素数。,素数能被1和本身整除的整数,如17。为了判断一个数n 是不是素数,可以将n被2到 间的所有整数除,如果都除不尽,则n就是素数,否则n是非素数。,第五节 Do循环控制结构,一、Do-Loop语句,(1)DoLoop While循环 格式1:Do 语句块 Exit Do

20、 LoopWhile循环条件,1.While和Until放在循环的末尾,分别叫做DoLoop While和DoLoop Until循环。,(2)DoLoop Until循环 格式2:Do 语句块 Exit Do LoopUntil循环条件,区别: While是当条件为True时执行循环; Until是在条件变为True之前重复。,2.While和Until放在循环的开头,即紧跟在关键字Do之后,分别叫做Do WhileLoop循环和Do UntilLoop循环。,(1)Do WhileLoop循环 格式1: DoWhile循环条件 语句块 Exit Do Loop,(2)Do UntilLoo

21、p循环 格式2: DoUntil循环条件 语句块 Exit Do Loop,功能:当指定的“循环条件”为True或直到指定的“循环 条件”变为True之前重复执行一组语句(即循环体)。,二、正确使用Do-Loop循环,2.Do While | UntilLoop循环先判断条件,然后在条件满足时才执行循环体,否则不执行。DoLoop While | Until循环正好相反,它不管条件是否满足,先执行一次循环体,然后再判断条件以决定其后的操作。,a=15 b=10 Do While a b Print a + b a=a-1 Loop 输出结果为: 25 24 23 22 21,例如:,a=15

22、b=10 Do Until Not a b Print a + b a=a-1 Loop 则输出结果完全相同。,3.和While循环一样,如果条件总是成立,Do循环也可能陷入“死循环”。在这种情况下,可以用Exit Do语句跳出循环。,4.Do可以嵌套,其规则与For-Next循环相同。,例 7.7 目前世界人口约为60亿,如果以每年1.4%的速度增长,多少年后世界人口达到或超过70亿。,Do UntilLoop循环。,DoUntil Loop循环。,第六节 多重循环,一、当循环和Do循环的嵌套,如果在一个循环体内包含另一个循环,则称为循环的嵌套。,当循环以While开始,以Wend结束,Do

23、-Loop循环以Do开始,以Loop结束,在嵌套时比较容易区分。,内层循环和外层循环可以是同一种类型的循环,也可以是不同类型的循环。,二、For-Next循环的嵌套,注意:,(1)内外循环交叉。,(2)在早期的 BASIC版本中,内层循环和外层循环的循变量名可以相同。但不会得到预期的结果,也不会出错。,例 7.8 打印“九九表”,输出结果如图所示。,例 7.9 编写程序,输出100300间的所有素数。,三、出口语句,可以根据需要退出循环,是中止机理。,无条件形式 Exit For Exit Do Exit Sub Exit Function,条件形式 If 条件 Then Exit For I

24、f 条件 Then Exit Do If 条件 Then Exit Sub If 条件 Then Exit Function,例 7.10 编写程序,试验出口语句。,第七节 GoTo型控制,一、GoTo语句,GoTo语句可以改变程序执行的顺序,跳过程序 的某一部分去执行另一部分,或者返回已经执行过 的某语句使之重复执行。,格式:GoTo标号|行号“标号”必须以英文字母开头,是一个以冒号结尾的标识符;“行号”是一个整型数,不以冒号结尾。,注意:GoTo语句只能在一个过程中使用。,例 7.11 编写程序,计算存款利息。(p=10000,r=0.125,n=10),二、On-GoTo语句,On-GoTo语句类似于情况语句,用来实现多 分支选择控制。,格式:On 数值表达式 GoTo 行号表列|标号表列,执行过程是:,如果“数值表达式”的值等于0或大于“行号表列”或 “标号表列” 中的项数,程序找不到适当的语句行,将自动执行On-GoTo语句下面的一个可执行语句。,先计算“数值表达式”的值,将其四舍五入处理得一整数,然后根据该整数的值决定转移到第几个行号或标号执行。,注意:在Visual Basic中,On-GoTo语句可以用情况语句来代替。应尽量使用情况语句,少用或不用On-GoTo语句。,例 On x GoTo 30,50,Line3,Line4,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Visual Basic

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报