VB第4章分支与循环结构.ppt

上传人:豆**** 文档编号:34219785 上传时间:2022-08-15 格式:PPT 页数:49 大小:436.50KB
返回 下载 相关 举报
VB第4章分支与循环结构.ppt_第1页
第1页 / 共49页
VB第4章分支与循环结构.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《VB第4章分支与循环结构.ppt》由会员分享,可在线阅读,更多相关《VB第4章分支与循环结构.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、p 程序控制结构:是语句排列和控制转移方向的描述,程序控制结构:是语句排列和控制转移方向的描述,决定了程序执行的顺序。决定了程序执行的顺序。p 三种基本控制结构:顺序、选择、循环三种基本控制结构:顺序、选择、循环p 顺序结构:最基本、最简单的结构,按语句出现的先顺序结构:最基本、最简单的结构,按语句出现的先后顺序依次执行。后顺序依次执行。4.1 4.1 顺序结构顺序结构 先对条件先对条件测试测试,根据测试的结果选择执行不同的分支,根据测试的结果选择执行不同的分支1.If1.If条件语句条件语句2.Select Case 2.Select Case 结构结构4.2 4.2 选择结构选择结构语句的

2、三种形式:If条件语句条件语句 例:例: score = 60 Then Print 祝贺你考试通过!祝贺你考试通过! Print “继续努力!继续努力!” : Score=60 Score=60 ThenThen Print Print “祝贺你考试通过!祝贺你考试通过!” Print Print “继续努力继续努力!” 格式格式:(1) If :(1) If 条件条件 Then Then (A (A组组语句语句) ) EndIfEndIf (2)(2) If If 条件条件 Then Then 语句语句执行规则:若执行规则:若, ,执行执行A A组语句组语句; ; 条件不成立条件不成立,

3、,跳过跳过A A组语句组语句. .条件条件A组语句组语句TF 例:例: If score = 60 Then Print score Print 祝贺你考试通过!祝贺你考试通过! End If Print “继续努力!继续努力!” 例例1:输入两个数,分别放在:输入两个数,分别放在x和和y变量中,比较它们大小,变量中,比较它们大小, 然后将大数放在然后将大数放在x中,小数放在中,小数放在y中。中。x yx%=Text1.textY%=Text2.textIf x = 60 Then Print “祝贺你考试通过!祝贺你考试通过!” Else Print “考试未通过考试未通过.” End If

4、 Print 继续努力!继续努力!格式:格式: 条件条件 ThenThen A A组语句组语句 ElseElse B B组语句组语句 执行规则执行规则: :条件条件成立成立, ,执行执行A A组语句组语句, , 条件条件不成立不成立, ,执行执行B B组语句组语句例例2:计算分段函数:计算分段函数: Y=x2+1 (x0) x3+3x (x=0)条件条件A组语句组语句TFB组语句组语句If条件语句条件语句例:例:(思考思考)输入二级考试成绩,要求显示对应三级制的输入二级考试成绩,要求显示对应三级制的 评定。评定条件为:评定。评定条件为: 优:优:Mark 90等级:等级: 通过:通过:60 M

5、ark 90 未通过:未通过:=90?输入成绩开始输出“通过”T输出“优”T成绩=60?F输出“未通过”FIf条件语句条件语句.Mark=Text1.TextIf Mark = 90 Then Print 优优ElseIf Mark = 60 Then Print 通过通过Else Print 未通过未通过End If格式: 条件1 Then (A组语句) ElseIf 条件2 Then (B组语句) ElseIf 条件3 Then (C组语句) Else (n组语句) If条件语句条件语句格式:If 条件1 Then A组语句 ElseIf 条件2 Then B组语句 ElseIf 条件3

6、Then C组语句 Else n组语句 End If注意:注意: 多分支语句中,有多个分多分支语句中,有多个分 支同时满足,只执行支同时满足,只执行 与之匹配的语句块。与之匹配的语句块。 注意注意 的写法的写法If条件语句条件语句【例4.3】 用键盘输入一字符,判断该字符是小写字母、大写字母、数字字符还是其他字符,并作相应的显示。If条件语句条件语句4. If4. If语句的嵌套语句的嵌套 If语句的嵌套是指if 或else后面的语句块中又包含If语句。 If条件语句条件语句使用嵌套语句时应注意以下问题:使用嵌套语句时应注意以下问题:(1 1)如果存在嵌套时,语句中的每一个)如果存在嵌套时,语

7、句中的每一个Else必须和一个必须和一个If相对相对应,应避免产生混乱。应,应避免产生混乱。在书写时,可以将同一层的在书写时,可以将同一层的If子句和子句和Else子句左对齐,子句左对齐,内层的各语句块相对于外层向右缩进若干内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚便于阅读和查错。空格,以使程序结构更加清楚便于阅读和查错。(2 2)每一个双分支结构都必须以)每一个双分支结构都必须以If开始,以开始,以End If结束。结束。(3)内层嵌套的结构中除了满足该层规定的条件外, 还必须首先满足外层结构中相应位置的条件。(4)VB中对块嵌套的层数没有限制,在嵌套的结构中仍然可以继续

8、嵌套其他的结构.(5)利用双分支If语句的嵌套可以解决“多分支”选择的问题。Select CaseSelect Case 测试表达式测试表达式 Case Case 测试项测试项1 1 A A组语句组语句 Case Case 测试项测试项2 2 B B组语句组语句 Case ElseCase Else n n组语句组语句End SelectEnd Select 测试表达式可以是数值型或字符型测试表达式可以是数值型或字符型 测试项的取值必须与测试表达式测试项的取值必须与测试表达式 的值类型相同,不能包含逻辑运算符的值类型相同,不能包含逻辑运算符常用形式为:常用形式为:n具体取值,用逗号隔开具体取值

9、,用逗号隔开如:如:1 1,5 5,9 9n连续的范围:界连续的范围:界1 TO 1 TO 界界2 2如:如:12 To 20 12 To 20 n满足某个条件:满足某个条件:IsIs运算符运算符如:如:Is10 Is10 n三种形式可以组合使用三种形式可以组合使用Select Case语句语句例:输入二级考试成绩,要求显例:输入二级考试成绩,要求显 示对应三级制的评定。示对应三级制的评定。 Mark=Val(Text1.Text)Select case Mark case is=90 Print 优优 case 90 to 60 Print “通过通过 Case Else Print “未通

10、过未通过End selectp对于多分支选择结构,用对于多分支选择结构,用Select Case 语句比用语句比用IfThenElseIf语句更为直观,程序可读性强。语句更为直观,程序可读性强。p两者的区别在于:两者的区别在于:Select Case 语句只对单一表达式求值语句只对单一表达式求值,并,并根据求值结果执行不同的语句块,而根据求值结果执行不同的语句块,而IfThenElseIf语句可语句可以对多个不同的表达式求值以对多个不同的表达式求值, ,所以,当对多个条件进行判断时,所以,当对多个条件进行判断时,只能用只能用IfThenElseIf语句。语句。4.3 4.3 循环结构循环结构循

11、环循环: :是在指定的条件下多次重复执行一组语句是在指定的条件下多次重复执行一组语句1. For 1. For NextNext2. Do2. DoLoop Loop 3. 3. 循环嵌套循环嵌套 4.4.其他辅助控制语句其他辅助控制语句 VB提供了三种不同风格的循环结构,分别是:计数循环(ForNext循环)当循环(While循环)Do循环(DoLoop循环) 其中计数循环常用于已知循环次数的循环,而当循环和Do循环适合于循环次数未知,只知道循环结束条件的循环。 For For 循环变量循环变量= =初值初值 TO 终值终值 Step 步长步长 语句块语句块 Exit ForExit For

12、 语句块语句块 Next Next 循环变量循环变量For循环格式:循环格式:For循环循环-计数型循环计数型循环步长省略,步长省略,默认为默认为1 1循环体循环体(1)系统将初值赋给循环变量,并自动记下终值和步长。(2)判断循环变量是否超过终值:未超过终值,执行一次循环体;否则,结束循环(3)执行Next语句,将循环变量加上一个步长。(4)转到(2),继续执行。(5)结束循环,执行Next后面的语句。 循环变量=初值循环变量是否到达终值循环体循环变量循环变量= =循环变量循环变量+ +步长步长TrueFalse程序代码:程序代码: Dim I%, s % For I = 1 To 10 st

13、ep 1 Next I Print I, s例例1:1:求求1+2+3+4+1+2+3+4+10+10之和之和. .分析分析: :重复过程重复过程( (循环体循环体):): s ss s+I+I初值、终值和增量初值、终值和增量:1、10、1循环体的执行次数是多少循环体的执行次数是多少 ? ? 输出的输出的I、S的值是多少的值是多少 ? ?For I = 1 To 10执行多少次?执行多少次?s = s + IFor I=10 To 1 Step -1For循环循环 For For 循环变量循环变量= =初值初值 TO TO 终值终值 Step Step 步长步长 语句块语句块 Exit For

14、Exit For 语句块语句块 Next Next 循环变量循环变量循环体循环体 Dim I As Integer, s As Integer For I = 1 To 10 s = s + I Next I Print I, s 例例2:2: 求求1010!分析分析: :重复过程重复过程: :* *初值、终值与增量不变初值、终值与增量不变 例例1:1:求求1+2+3+4+ 1+2+3+4+ +10+10之和之和. .分析分析: :重复过程重复过程( (循环体循环体):): + +初值、终值和增量初值、终值和增量:1、10、1 Dim I As Integer, s As Integer Fo

15、r I = 1 To 10 s = s * I Next I Print I, ss=1For I = 1 To 10For I = 1 To 10 s=1For循环循环功能说明:(1)在执行过程第二步中,所说的“超过”包含两种情况 步长为正数时,循环变量大于终值为“超过”。 步长为负数时,循环变量小于终值为“超过”。(2)终值和初值的取值有以下情况: 步长为正数时,终值应该大于初值,否则循环体不会被执行。 步长为负数时,终值应该小于初值,否则循环体不会被执行。 当循环变量等于终值时,不管步长是正数是负数,均执行一次循环体。(3)循环次数由初值、终值和步长确定,计算公式为:循环次数 = Int

16、(终值-初值)/ 步长)+ 1(4)For语句和Next语句必须成对出现,不能单独使用。(5)循环变量在循环体内可以被引用参与运算。(6) Exit For表示当遇到该语句时,退出循环体,继续执行Next语句下面的代码;(7)当循环变量为整型,而循环参数为带小数点的实数时系统将按照CInt函数或CLng函数的方式,将其转换为与循环变量相同的整型数。 Private Sub Command1_Click() Dim i As Integer For i = 7 To 8.6 Step 2.5 Print i Next i End Sub例:分析下列程序段的输出结果:例:分析下列程序段的输出结果:

17、 Dim I As Integer, J As Integer J = 2:m=6 For I = 0 To m Step J I = I + 1 J = J + 1 m=m+1 Next I print I,J, mFor循环循环o【例4.6】 输入20个整数,分别计算并输出正数和负数的平均值。1. Do 1. Do WhileWhile 循环体循环体 LoopLoop2. D0 2. D0 循环体循环体 Loop While Loop While 3. Do Until 3. Do Until 循环体循环体 LoopLoop4. Do 4. Do 循环体循环体 Loop Until Loo

18、p Until DoLoop循环循环-条件型循环条件型循环While Do While 循环体循环体 Exit Do Loop执行过程执行过程: :(先判断,后执行)(先判断,后执行)先判断循环条件先判断循环条件, ,若为真若为真: :执行循环体执行循环体, ,再判断循环条件再判断循环条件否则,跳过循环体否则,跳过循环体, ,执行执行LoopLoop之后语句之后语句循环条件循环条件 语句块语句块TF语句块语句块FExit DoExit DoTDoLoop循环循环 Do While 循环体循环体 Exit DoExit Do Loop Dim I As Integer, s As Integer

19、 For I = 1 To 10 s = s + I Next I Print I, s例例1:1:求求1+2+3+4+1+2+3+4+10+10的和的和. .Dim I Dim I As Integer, s As Integer As Integer I=1I=1Do WhileDo WhileLoopLoopPrint I,s Print I,s s=s+I s=s+I I=10I=10I=I+1I=I+1I=11I=11(1)(1)循环体执行了几次循环体执行了几次? ? (2)(2)没有没有I=1I=1会怎样会怎样? ?(3)(3)将将PrintPrint语句语句移到移到LoopLoo

20、p的的 前面结果怎样前面结果怎样? ?(4)(4)I I先赋值为先赋值为1 11 1, ,结果如何结果如何? ?1. 1. While循环循环DoLoop循环循环 D0 循环体循环体 Exit Do Loop While 执行过程执行过程: :(先执行,后判断)(先执行,后判断)先执行循环体先执行循环体, ,再判断循环条件再判断循环条件, ,若为真,若为真, 继续执行循环体继续执行循环体; ;否则,结束循环否则,结束循环, ,执行执行LoopLoop之后语句之后语句循环条件循环条件 语句块语句块TF语句块语句块F FExit DoExit DoTWhileDoLoop循环循环 D0 循环体循环

21、体 Exit Do Loop While 例例4:4:修改例修改例3 3 Dim I As Integer ,s As Integer I=1 Do While I=10 s=s+I I=I+1 Loop Print I,s Dim I As Integer ,s As Integer I=1 Do s=s+I I=I+1 Loop While I=10 Print I,s (1)(1)循环体执行几次?循环体执行几次?(2)(2)将将I I先赋值为先赋值为1111, 执行结果如何执行结果如何? ?DoLoop循环循环 Do While 循环体循环体Exit Do Loop D0 循环体循环体

22、Exit Do Loop While 1)1)执行顺序不同执行顺序不同 形式一形式一: :先判断先判断, ,后执行循环体后执行循环体; ; 形式二形式二: :先执行循环体先执行循环体, ,后判断后判断 (2)(2)执行次数不同执行次数不同(特殊情况下) 形式一形式一: :条件不满足条件不满足, ,循环体可能一次也不执行循环体可能一次也不执行 形式二形式二: :不论条件如何不论条件如何, ,至少执行一次至少执行一次DoLoop循环循环执行过程执行过程: :(先判断,后执行)(先判断,后执行)先判断循环条件:先判断循环条件:条件为条件为假假: : 执行循环体执行循环体, , 然后再判断条件然后再判

23、断条件. .条件为条件为真真: : 跳过循环体跳过循环体, , 执行执行LoopLoop之后语句之后语句 Do Until 循环体循环体 Exit Do Loop2.2.Until循环循环循环条件循环条件 语句块语句块F F语句块语句块F FExit DoExit DoTDoLoop循环循环 Do Until 循环体循环体 Exit Do Loop例例5:5:修改上例修改上例Dim I as integer,s As Integer I=1Do While I=10 s=s+I I=I+1LoopPrint I,s Dim I as interger,s As Integer I=1Do Un

24、til s=s+I I=I+1LoopPrint I,s 条件应该如何写出条件应该如何写出? 显示的显示的I、S值与值与 上例一样吗?上例一样吗? Do Do 循环体循环体 Loop Until Loop Until DoLoop循环循环 DoDo While While 循环体循环体 LoopLoop( While While ) Do Do Until Until 循环体循环体 LoopLoop( Until Until )区别区别: : While While 条件为条件为真真时执行循环体时执行循环体, ,否则退出循环否则退出循环 Until Until 条件为条件为假假时执行循环体时执

25、行循环体, ,否则退出循环否则退出循环关系:关系: WhileWhile和和UntilUntil可以相互可以相互转换转换,但循环条件,但循环条件取反取反DoLoop循环循环 满足循环条件的情况下,提前跳出循环体,结束循环。满足循环条件的情况下,提前跳出循环体,结束循环。 两种形式:两种形式:Exit For、Exit Do 作用:无条件的转移到标号或行号指定的语句作用:无条件的转移到标号或行号指定的语句 语法:语法:GoTo 标号标号|行号行号 100100 If I = 100 Then If I = 100 Then s = s + I s = s + I I = I + 2 I = I

26、+ 2 GoTo 100 GoTo 100 End If End If其他辅助控制语句其他辅助控制语句Dim I As IntegerIf I mod 17 =0 then print I end If For I=100 to 200 Next IExit for分析:分析: 重复工作:判断每个数除重复工作:判断每个数除17的余数是否为的余数是否为0 初值、终值和增量:初值、终值和增量:练习:练习: 求出求出100100200200之间的之间的第一个第一个能被能被1717整除的整数。整除的整数。其他辅助控制语句其他辅助控制语句在一个循环体内又包含了一个完整的循环结构在一个循环体内又包含了一个

27、完整的循环结构4.4 循环嵌套循环嵌套 For I = 1 To 9 For J = 1 To I s = I & & J & = & I * J Picture1.Print Tab(J - 1) * 8 + 1); s; Next J Picture1.Print Next I注意注意: 内、外循环变量不能同名 外循环必须完全包含内循环,不能出现交叉在循环体中遇到Exit For (Do)时,则只能跳出当前一层循环1. 外层循环执行一次,内层循环要从头到尾执行一遍 【例例4.94.9】编写程序,找出编写程序,找出100100以内所有满足以内所有满足a2+b2=c2且且ab的自然数组合。的自

28、然数组合。 解题的基本思想是:解题的基本思想是: 一一列举各种可能的情况,并一一列举各种可能的情况,并判断哪种情况是符合要求的解,这种算法称为判断哪种情况是符合要求的解,这种算法称为穷举法穷举法(又称(又称“枚举法枚举法”),通常采用循环结构来实现。),通常采用循环结构来实现。 本程序使用了三重循环,循环变量在本程序使用了三重循环,循环变量在11001100之间变化,之间变化,内循环体被执行了内循环体被执行了100100* *100100* *100100次次。4.5 程序示例程序示例要求掌握的几个算法:1.累加、连乘累加、连乘例1:编写一个大奖赛统计选手得分的程序。 要求单击“得分显示”按钮

29、,则可以利用随机函数产生10个80100分之间的随机整数,输出在窗体上,并将计算选手的最后得分也在窗体上显示。分析:由随机函数生成分析:由随机函数生成8080100100之间的之间的1010个数据个数据 连续求和连续求和 求平均值求平均值 2.求素数求素数素数(质数):一个大于等于2的整数,并且只能被1和自身 整除,而不能被其他整数整除的数。N N是否为素数的判断算法:用穷举法是否为素数的判断算法:用穷举法 用用2 2至至n-1n-1逐个去除整数逐个去除整数n.n. 若余数不为若余数不为0 0,用下一个整数去除,直到,用下一个整数去除,直到n n1 1为止为止 否则进行标记,或退出循环否则进行

30、标记,或退出循环 输出结果输出结果为了压缩循环次数为了压缩循环次数, ,可将判断范围从可将判断范围从 2 - n-1 2 - n-1 改为改为 2 - int(sqr(N)2 - int(sqr(N)【例例4.104.10】编写程序,找出编写程序,找出1000010000以内的所有素数并作相应显示以内的所有素数并作相应显示。 本例题可以用双重循环来实现,外循环用于对本例题可以用双重循环来实现,外循环用于对210000210000之间的数之间的数逐个进行判断,若是素数则将其添加到列表框中并作相应的计逐个进行判断,若是素数则将其添加到列表框中并作相应的计数,内循环用于判断每个数是否为素数。数,内循

31、环用于判断每个数是否为素数。3.求最大公约数的算法求最大公约数的算法S1.S1.输入两个自然数输入两个自然数M M、N N;S2.S2.求求M M除以除以N N的余数的余数R R;S3.S3.使使M=NM=N,即用,即用N N代换代换M M;S4.S4.使使N=RN=R,即用,即用R R代换代换N N;S5.S5.若若R0R0,则重复执行,则重复执行S2S2、S3S3、S4S4(循环),否则转(循环),否则转S6S6;S6.S6.输出输出M M,M M即为即为M M和和N N的最大公约数。的最大公约数。Private Sub Form_Click() m = Val(Text1) n = Va

32、l(Text2) If n = 0 Or m = 0 Then Text3=数据出错数据出错 End End If If m n Do 用用doloop while结构实现求最大公约数结构实现求最大公约数 R = m Mod n m = n n = R Loop while R0 Text3.text=Cstr(m)End Sub求二个正整数求二个正整数m m和和n n的最小公倍数的最小公倍数 求得最大公约数以后,将原两数相乘并除以最大公约数,就得求得最大公约数以后,将原两数相乘并除以最大公约数,就得到了最小公倍数。到了最小公倍数。4.穷举法穷举法穷举法:就是将可能出现的各种情况一一测试,判断

33、是否穷举法:就是将可能出现的各种情况一一测试,判断是否 满足条件满足条件 For x = 0 To 100 For y = 0 To 100 For z = 0 To 100 If x + y + z = 100 And _ 3 * x + 2 * y + 0.5 * z = 100 Then Print x, y, z End If Next z Next y Next x例:百钱买百鸡例:百钱买百鸡 假设:小鸡假设:小鸡5 5角角/ /只,公鸡只,公鸡2 2元元/ /只,母鸡只,母鸡3 3元元/ /只,现有只,现有100100元钱要买元钱要买100100只鸡,编只鸡,编程列出所有可能的购鸡

34、方程列出所有可能的购鸡方案案分析:设母鸡、公鸡、小分析:设母鸡、公鸡、小鸡分别买鸡分别买X X、Y Y、Z Z只只 X+Y+Z=100 X+Y+Z=100 3 3* *X+2X+2* *Y+0.5Y+0.5* *Z=100Z=100 For x = 0 To 33 For y = 0 To 50 If 3 * x + 2 * y + 0.5 * (100 - x - y)_ = 100 Then Print x, y, z End If Next y Next x【例例4.134.13】 随机生成随机生成3030个三位正整数,将能被个三位正整数,将能被3 3整除、整除、能被能被7 7整除的数找出并显示。整除的数找出并显示。生成生成m-nm-n之间的随机整数可使用以下公式:之间的随机整数可使用以下公式:Int(Rnd * (n-m+1) )+m, 本例中本例中m=100m=100,n=999n=999

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁