《循环结构do循环嵌套.ppt》由会员分享,可在线阅读,更多相关《循环结构do循环嵌套.ppt(34页珍藏版)》请在三一办公上搜索。
1、上节课内容回顾,WhileWend语句注意:如果循环次数未知,则最好采用whilewend语句,循环结构程序设计,for 循环结构While循环结构Dowhile循环结构多重循环结构,重点:理解循环的执行过程 编写循环结构程序难点:多重循环结构,循环结构,循环结构依据某一条件(循环条件)反复执行某段程序(即循环体)。三种循环结构:for、while、do,循环三要素,循环三要素:(1)初始化:决定循环的初始状态,即与循环相关的变量的初始值。(2)循环体:循环中反复执行的部分。(3)循环的条件:决定循环结束的条件。,Do循环,当型循环 当循环条件成立时执行循环,否则退出循环。,Do循环结构,先判
2、断后执行,先执行后判断,特点:条件表达式成立执行循环体,例:求1100之间所有整数的和,用WhileWend语句实现。sum=0:i=1 While i=100 sum=sum+i i=i+1 Wend,i=1:s=0 While i=100 s=s+i i=i+1wend,i=1:s=0Do While i=100 s=s+i i=i+1Loop,i=1:s=0Do s=s+i i=i+1Loop While i=100,2.直到型循环,直到循环条件成立时退出循环,否则执行循环。,特点:条件表达式不成立执行循环体,求1100之间所有整数的和,i=1:s=0 Do While i=100 s=
3、s+i i=i+1Loop,i=1:s=0 Do s=s+i i=i+1Loop While i=100,i=1:s=0 Do Until i100 s=s+i i=i+1Loop,i=1:s=0 Do s=s+i i=i+1Loop Until i100,例4.20 求某同学的平均分,Private Sub Command1_Click()Dim Sum%,i%,n%,num%,avg#Sum=0:i=1:n=Val(Text1.Text)Do While i=n num=Val(InputBox(输入第&i&位_同学的成绩,成绩输入)Sum=Sum+num i=i+1 Loop avg=S
4、um/n MsgBox 该生&n&门课程的平均分为&avg,求平均成绩End Sub,例4.25 分析程序,Private Sub Form_click()Dim s%,i%s=0:i=1 Do While i=4 Then Exit Do End If i=i+1 Loop Print 第;i-1;项“End Sub输出结果:第2项,Goto语句,前面介绍的循环结构都是根据某个条件进行循环,称为有条件跳转语句。Goto语句和On-Goto语句,称为无条件跳转语句。格式:Goto 语句标号|行号注意:(1)“语句|标号”是一个英文单词或整数,位于一行语句的开头,用于指示语句的位置,以冒号结尾。
5、(2)Goto语句与If语句构成循环结构。,循环的嵌套,在一个循环结构的循环体内含有另一个完整的循环结构,称为循环的结构(多重循环)。说明:内外循环之间必须完整包含,不得交叉。内循环变量与外循环变量不能同名。如:for i=1 to 10 for j=1 to 10 next j next i,内循环 j,外循环 i,例4.26:打印循环变量的值。,Private Sub Form_click()Dim i%,j%For i=1 To 3 外循环变化为1、2、3 Print i=;i;,;打印外循环变量i的值 Print j=;For j=1 To 4 内循环变化为1、2、3、4 Print
6、j;打印内循环变量j的值 Next j Print Next iEnd Sub,例4.27 求100-200之间的素数。,质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。,分析:穷举法:把所有的值一一列举出来,然后依次进行筛选。(1)For m=100 to 200 判断m是否为素数,若是则打印 Next j(2)因为所有的偶数都不是素数,故设步长为2,从101开始判断,以提高程序的执行效率。For m=101 to 200 step 2 判断m是否为素数,若是则打印 Next j,素数的判断:1:只
7、能被1和本身整除。或2:不能被小于它的平方根的所有素数整除就是素数。但是从算法上考虑,为了减少重复量,开平方后面的数就不用相除了。,Private Sub Form_click()Dim m%,i%,n%For m=101 To 200 Step 2 外循环测试奇数 For i=2 To Sqr(m)内循环构造测试条件 If m Mod i=0 Then 能够整除,不是素数 Exit For 结束内循环 End If Next i If i Sqr(m)Then 正常结束内循环,是素数 n=n+1 统计素数个数 Print m;If n Mod 5=0 Then Print 控制每行输出5个
8、End If Next m Print Print 素数的个数为;n 输出素数个数End Sub,另一方法:素数与1到素数本身中间的所有整数都相除,看是否有整除的数,如果有,那肯定不是素数了。,另一方法 求素数,Private Sub Form_click()Dim m%,i%,n%For m=101 To 200 Step 2 外循环测试奇数 For i=2 To m-1 Sqr(m)内循环构造测试条件 If m Mod i=0 Then 能够整除,不是素数 Exit For 结束内循环 End If Next i If i m-1 Then Sqr(m)Then 正常结束内循环,是素数 n
9、=n+1 统计素数个数 Print m;If n Mod 5=0 Then Print 控制每行输出5个 End If Next m Print Print 素数的个数为;n 输出素数个数End Sub,例4.28 打印以下图形。,Private Sub form_click()Dim i%,j%For i=1 To 5 For j=1 To 5 Print*;Next j Print Next iEnd Sub,例4.29 打印图形。,Private Sub Form_Click()Dim i%,j%Cls For i=1 To 5 Print Space(i);For j=1 To 10-
10、2*i+1 Print*;Next j Print Next iEnd Sub,思考:如何打印以下图形。,Private Sub Form_Click()Font.Size=20 Dim i%,j%Cls For i=1 To 5 Print Space(i-1);For j=1 To 10-2*i+1 Print*;Next j Print Next iEnd Sub,例4.30 打印九九乘法表,分析:(1)共9行,按行打印 For i=1 to 9 打印第i行 换行,准备输出下一行 Next i(2)每列的列号从1到9,行号固定不变。For j=1 to 9 Print i 打印第i行 Next j,Private Sub Form_click()Dim i%,j%Print Tab(30);九九乘法表 Print For i=1 To 9 For j=1 To i 内循环每次执行的次数不确定 Print Tab(8*(j-1);i Next j Print Next iEnd Sub,下次课内容,数组,作业,一:6,7二:2,