1、 在Visual Basic程序的三种结构中,循环结构是一种重要结构。循环的本质循环的本质:不断地重复某种动作。对计算机程序而言,循环必须具备两个重要因素:对计算机程序而言,循环必须具备两个重要因素:1.在一定的条件下,重复执行一组语句2.必然出现不满足条件的情况,使循环终止第1页,共21页。VB中提供了两种类型的循环语句:一种是计数循环语句;另一种是条件循环语句。Visual Basic 支持的循环结构有:DoLoop For.Next WhileWend GoTo 语句重点掌握:DoLoop、For.Next、WhileWend等前三种循环第2页,共21页。DoLoop循环用于事先不知道循
2、环次数事先不知道循环次数的循环结构。此种语句四种语法格式:.Do While Loop 语句 .Do Loop While 语句 .Do Until Loop 语句 .Do Loop Until 语句第3页,共21页。语法格式:Do While 条件表达式 循环体 Exit Do 循环体 LoopTF条件循环体流程图第4页,共21页。说明:条件表达式可以是一个逻辑表达式,也可以是一个关系表达式,其值应是逻辑型。Do While和Loop应成对出现。循环体中要有改变循环控制变量值的语句,以避免出现死循环。由于该循环的特点是先判断条件,然后再决定是否要执行循环体里的语句。所以,这种循环可以一次也不
3、执行循环体。Exit Do 表示当遇到该语句时,强制退出循环,执行Loop后的下一条语句,一般与If 语句联用第5页,共21页。语法格式:Do 循环体 Exit Do 循环体 Loop While条件表达式流程图TF条件循环体注意:注意:至少要执行循环体一次。与Do While循环的区别:Do While循环先测试条件是否成立,只有成立才执行循环;而该循环先执循环先测试条件是否成立,只有成立才执行循环;而该循环先执行循环体,后测试条件是否成立。行循环体,后测试条件是否成立。第6页,共21页。语法格式:Do Until条件表达式 循环体 Exit Do 循环体 Loop .Do Until Lo
4、op语句语句Do Until Loop语句流程图.Do Loop Until语句语句格式:Do 循环体 Exit Do 循环体 Loop Until条件表达式TF条件循环体Do Loop Until语句流程图FT条件循环体第7页,共21页。A=val(InputBox(“请输入第请输入第1个学生成绩个学生成绩”)B=val(InputBox(“请输入第请输入第2个学生成绩个学生成绩”)C=val(InputBox(“请输入第请输入第3个学生成绩个学生成绩”)Avg=(A+B+C)/3Print Avg编程:通过输入对话框输入三个学生成绩,计算成绩平均编程:通过输入对话框输入三个学生成绩,计算成
5、绩平均分。分。此程序存在问题:如果需要输入此程序存在问题:如果需要输入20个成绩或更个成绩或更多或成绩个数根本不确定,则几乎让人无法忍受多或成绩个数根本不确定,则几乎让人无法忍受第8页,共21页。编程:通过输入对话框输入编程:通过输入对话框输入10个学生成绩,计算成绩平均分。个学生成绩,计算成绩平均分。i=1Do While i=10 A=val(InputBox(“请输入第请输入第1个学生成绩个学生成绩”)i=i+1LoopAvg=(A+B+C)/10Print Avg思路思路:在前一程序的基础上作些改动,:在前一程序的基础上作些改动,10个数据的输入过程用循环实现:个数据的输入过程用循环实
6、现:让第一个输入语句循环让第一个输入语句循环10次次思考:此程序存在哪些问题?思考:此程序存在哪些问题?1、输入的前面、输入的前面9个成绩丢失个成绩丢失,B 和和 C中无值中无值2、输入对话框中的提示总是显示、输入对话框中的提示总是显示“第第1个个”第9页,共21页。解决办法:解决办法:1、每个输入的成绩即时累加;、每个输入的成绩即时累加;2、提示信息分解成三、提示信息分解成三部分:部分:“请输入第请输入第”、变量、变量i 、“个学生成绩个学生成绩”i=1:s=0Do While i=10 A=val(InputBox(“请输入第请输入第”&i&“个学生成绩个学生成绩”)s=s+Val(A):
7、i=i+1LoopAvg=s/10Print Avg第10页,共21页。编程:通过输入对话框输入若干成绩,如果输入的成绩为编程:通过输入对话框输入若干成绩,如果输入的成绩为-1,表示,表示输入数据完毕,计算成绩平均分。输入数据完毕,计算成绩平均分。s=0 :n=1 cj=Val(InputBox(请输入第请输入第&n&个成绩个成绩)Do While cj -1 s=s+cj n=n+1 cj=Val(InputBox(请输入第请输入第&n&个成绩个成绩)Loop avg=s/(n-1)Print 平均成绩为:平均成绩为:;avg第11页,共21页。循环体Exit For循环体循环变量增加步长循
8、环变量获得初值FT变量在终值内?For循环的执行过程语法格式:For 循环变量=初值 To 终值 Step 步长 Exit For Next 循环变量第12页,共21页。例题:编程计算:S=1+2+3+100Dim S%,i%S=0 累加前变量累加前变量S为为0For i=1 to 100 S=S+iNext iPrint S=,S 第13页,共21页。说明说明 格式中的参数说明:循环变量必须为数值型。循环的初值、终值和步长都是数值表达式,其值不一定是整数,可以是实数,VB自动取整。其中,增量参数可正可负。如果增量为正,则初值必须小于等于终值,否则不能执行循环体内的语句;如果增量为负,则初值必
9、须大于等于终值。如果没有设置step,则增量默认为1。在For语句和Next语句之间的语句序列称为循环体,可以是一个或多个语句。Exit For为强行退出循环语句。当遇到该语句时,退出循环,执行Next的下一个语句。Next是循环终端语句,在Next后面的循环变量与For中的循环变量必须相同。当循环是单层循环时,Next后面的循环变量可以不写。第14页,共21页。For循环语句的执行过程是:首先把初值赋给循环变量,接着检查循环变量的值是否超过终值,如果超过就不执行循环体,跳出循环,执行Next后面的语句;否则执行一次循环体,然后把循环变量增加步长,再赋给循环变量,重复上述过程。当初值等于终值时
10、,不管步长是正数还是负数,都执行一次循环体。循环次数由初值、终值和步长决定,计算公式为:循环次数=INT(终值 初值)/步长+1)For语句和Next语句必须成对出现,不能单独使用。如果要在循环变量到达终值前退出循环,可用Exit For语句来实现。该语句可以在For循环中出现多次,且位置不限。在循环体中可以使用循环变量,但一般不再对循环变量赋值。第15页,共21页。功能:功能:当While的条件表达式的值是True时执行循环体内的代码,直到While后的条件表达式的值为False。说明:说明:它与Do Loop语句的差别是:While Wend语句中不能使用Exit语句跳出循环。语法格式:语
11、法格式:While (条件表达式)等价于 do While(条件表达式)循环体 循环体Wend LOOP第16页,共21页。1、如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,2、嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:第17页,共21页。(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.D
12、o While/Until.Loop .Loop第18页,共21页。例题:例题:打印九九乘法表打印九九乘法表.For i=1 To 9 For j=1 To 9 se=i&j&=&i*j Picture1.Print Tab(j-1)*9+1);se;Next j Picture1.Print Next i第19页,共21页。对于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;外循环必须完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转向内循环不
13、能从循环体外转向循环体内,也不能从外循环转向内循环.正 确错 误 For i=1 To 10 For j=1 To 20 Next i Next j For i=1 To 10 For j=1 To 20 Next j Next i For i=1 To 10 Next i For i=1 To 10 Next i For i=1 To 10 For i=1 To 20 Next i Next i第20页,共21页。三、三、几种循环语句比较几种循环语句比较 F o r.toN ex tD o w hile/un til.L o o pd o.L o o p W hile/u ntil.循 环 类 型当 型 循 环当 型 循 环直 到 循 环循 环 控 制 条件循 环 变 量 大 于或 小 于 终 值条 件 成 立/不 成 立执 行 循 环条 件 成 立/不 成 立执 行 循 环循 环 变 量 初值在 F O R 语 句 行中在 D O 之 前在 D O 之 前使 循 环 结 束F o r 语 句 中 无需 专 门 语 句必 须 用 专 门 语 句必 须 使 用 专 门 语 句使 用 场 合循 环 次 数 容 易确 定循 环/结 束 控 制 条件 易 给 出循 环/结 束 控 制 条件 易 给 出第21页,共21页。