《最新循环结构do循环嵌套PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新循环结构do循环嵌套PPT课件.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、循环结构循环结构do循环嵌套循环嵌套循环结构程序设计循环结构程序设计for 循环结构循环结构While循环结构循环结构Dowhile循环结构循环结构多重循环结构多重循环结构i=1:s=0 i=1:s=0 WhileWhile i=100 i=100 s=s+i s=s+i i=i+1 i=i+1wendwendi=1:s=0i=1:s=0Do While Do While i=100 i=100 s=s+i s=s+i i=i+1 i=i+1LoopLoopi=1:s=0i=1:s=0DoDo s=s+i s=s+i i=i+1 i=i+1Loop While Loop While i=100
2、i=1002.直到型循环直到型循环 直到循环条件成立时退出循环,否则执直到循环条件成立时退出循环,否则执行循环。行循环。Do Until 循环体Loop 特点:条件表达式特点:条件表达式不成立不成立执行循环体执行循环体先判断后执行先判断后执行 条件表达式条件表达式成立?成立?循环体循环体NoNoYesYes先执行后判断先执行后判断条件表达式条件表达式成立?成立?循环体循环体NoNoYesYesDo 循环体Loop Until 求求1100之间所有整数的和之间所有整数的和i=1:s=0 i=1:s=0 Do WhileDo While i=100 i=100 s=s+i s=s+i i=i+1i
3、=i+1LoopLoopi=1:s=0i=1:s=0 DoDo s=s+is=s+i i=i+1 i=i+1Loop WhileLoop While i=100i100 i100 s=s+i s=s+i i=i+1 i=i+1LoopLoopi=1:s=0 i=1:s=0 DoDo s=s+is=s+i i=i+1 i=i+1Loop UntilLoop Until i100i100例例4.20 求某同学的平均分求某同学的平均分Private Sub Command1_Click()Private Sub Command1_Click()Dim Sum%,i%,n%,num%,avg#Dim
4、Sum%,i%,n%,num%,avg#Sum=0:i=1:n=Val(Text1.Text)Sum=0:i=1:n=Val(Text1.Text)Do While i=nDo While i=n num=Val(InputBox(num=Val(InputBox(输入第输入第&i&i&位位_ _同学的成绩同学的成绩,成绩输入成绩输入)Sum=Sum+num Sum=Sum+num i=i+1 i=i+1 LoopLoop avg=Sum/navg=Sum/n MsgBox MsgBox 该生该生&n&n&门课程的平均分为门课程的平均分为&avg,avg,求平均成绩求平均成绩 End SubE
5、nd 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)“语句语句|标号
6、标号”是一个英文单词或整数,位于一行语句是一个英文单词或整数,位于一行语句的开头,用于指示语句的位置,以冒号结尾。的开头,用于指示语句的位置,以冒号结尾。(2)Goto语句与语句与If语句构成循环结构。语句构成循环结构。循环的嵌套循环的嵌套 在一个循环结构的循环体内含有另一个完整的在一个循环结构的循环体内含有另一个完整的循环结构,称为循环的结构(多重循环)。循环结构,称为循环的结构(多重循环)。说明:说明:(1)内外循环之间必须完整包含,不得交叉。内外循环之间必须完整包含,不得交叉。(2)内循环变量与外循环变量不能同名内循环变量与外循环变量不能同名。如:如:for i=1 to 10 for
7、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 j;打印内循环变量打印内循环变量j的值的值 Next j Print Next iEnd Sub例例4.27 求求100-200之间的素数。之间的素数。质数又称素数。指在一个大于质数又称素数。
8、指在一个大于1的的自然数自然数中,中,除了除了1和此和此整数整数自身外,没法被其他自然数自身外,没法被其他自然数整整除除的数。换句话说,的数。换句话说,只有两个只有两个正因数正因数(1和自和自己)的自然数即为素数己)的自然数即为素数。分析:分析:穷举法:把所有的值一一列举出来,然后依次进行筛穷举法:把所有的值一一列举出来,然后依次进行筛选。选。(1)For m=100 to 200 判断判断m是否为素数,若是则打印是否为素数,若是则打印 Next j(2)因为所有的偶数都不是素数,故设步长为)因为所有的偶数都不是素数,故设步长为2,从,从101开始判断,以提高程序的执行效率。开始判断,以提高程
9、序的执行效率。For m=101 to 200 step 2 判断判断m是否为素数,若是则打印是否为素数,若是则打印 Next j素数的判断:素数的判断:1:只能被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
10、i Sqr(m)Then 正常结束内循环,是素数 n=n+1 统计素数个数 Print m;If n Mod 5=0 Then Print 控制每行输出5个 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)内循环构造测试条件内
11、循环构造测试条件 If m Mod i=0 Then 能够整除,不是素数能够整除,不是素数 Exit For 结束内循环结束内循环 End If Next i If i m-1 Then Sqr(m)Then 正常结束内循环,是素数正常结束内循环,是素数 n=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()
12、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-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 Spac
13、e(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&“*”&j&“=”&i*j;打印第打印第i行行 Next jPrivate 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&*&j&=&i*j;Next j Print Next iEnd Sub下次课内容下次课内容 数组数组作业作业一:一:6,7二:二:2