1、第七讲 循环嵌套 教学目标,巩固三种循环语句及应用; 初步掌握二层循环嵌套的应用;,回顾:三种控制结构,顺序结构 Java最基本的结构 选择结构 三种类型: if、if/else和switch 循环结构 三种类型: for、while和do/while,程序控制流程,流程控制语句是用来控制程序中各语句执行顺序的语句,是程序中非常关键和基本的部分。流程控制语句可以把单个语句组合成有意义的,能完成一定功能的小逻辑模块,能否熟练地运行流程控制语句往往很大程度上影响程序的质量。最主要的流程控制方式是结构化程序设计中的三种基本结构。,循环语句while语句,while (布尔表达式) 语句序列;,当型循
2、环,while语句循环体最少执行次数为0次,do-while语句,do 语句序列 while (布尔表达式);,直到型循环,do-while语句循环体最少执行1次,for语句,for循环语句在几种循环语句中的格式与用法最灵活,它的一般格式为: for(表达式1;表达式2;表达式3) 循环体 ,break控制语句,break语句的功能是终止执行包含break语句的一个程序块。break语句除了可应用于前面介绍的switch语句中外,还可应用于各种循环语句中。break语句的格式如下:break 标号;,continue语句,continue语句只能用在循环中,它的功能是使得程序跳过循环体中con
3、tinue语句后剩下的部分(即短路),终止当前这一轮循环的执行。continue语句的格式如下:continue 标号;,几点说明:,1)、有人说:没有循环结构等于没有计算机; 2)、for语句中表达式1可以是设置循环变量初值的赋值表达式,也可以是其他与循环无关的表达式, 如: for(sum=0,i=1;i=10;i+,j- ) sum=sum+i; 3)、循环控制语句中的表达式一般是关系表达式(如i=10)或逻辑表达式(如sb ,回顾:用 0.1mm 厚纸对折, 问对折多少次后, 其厚度超过地球直径 (12742公里) ?,0.1mm的纸对折37次后,厚度是13743.8953472000
4、01公里,超过地球直径!,public class whiledemo3 public static void main(String args) int n=1; / n 对折次数,double high = 2e-4; / high存放对折后的厚度while (high = 12742000) /数字的单位要统一 n = n+1;high = high*2;high = high / 1000;System.out.println(“0.1mm的纸对折“+n+“次后,厚度是“+high+“公里,超过地球直径!“); ,例1:要求输出乘法表,形式如下:,1 2 3 4 5 6 7 8 9 1
5、 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81,public static void main(String args) for (int i = 1; i =10) / 结
6、果是1位还是2位,输出空格数不同System.out.print(i*j+ “ “);else System.out.print(i*j+ “ “); System.out.println();,例1:输出乘法表chenfa.java,/ 什么是素数?只有1和这个数本身能整除它; / 判断方法1:如果从2到N/2都不能整除N,则N是素数; / 要求输出不大于200的素数(完整程序见prime1.java) public static void main(String args) loop: for(int i=2; i200; i+) for(int j=2;j=i/2;j+)if(i % j
7、 = 0) continue loop;System.out.printf(“%4d“,i); / 只打印素数,例2:素数的判断与输出,/ 判断方法2:设是开平方后取整得到的整数; / 若从2到K都不能整除N,则N是素数; / 要求输出不大于200的素数(完整程序见prime2.java)int n=0; outer:for(int i=2; i200; i+) int k = (int) Math.sqrt(i);for ( int j=2;j=k;j+) if(i%j = = 0 ) continue outer;System.out.print(“ “+i); / 只打印素数,例3:素数
8、的判断与输出,编程练习:,1.编程输出所有的水仙花数。水仙花数是指一个三位数,它的各位数的立方和等于该数,如153=1*1*1+5*5*5+3*3*3,所以153是水仙花数; 2.编程输出九九乘法结果表,但是只要左下角的部分,输出要求如: 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81,思考与讨论:,对于循环控制语句for(表达式1;表达式2;表达式3),语法允许三个表达式是可以省略的,问: 1)、当“表达式1“省略时,会有何变化?如何处理? 2)、当“表达式2“省略时,循环流程会如何处理? 3)、当“表达式3“省略时,会有何变化?如何处理能正常结束。 4)、当表达式1、表达式3同时省略时,如果理解? 5)、for语句中的三个表达式都省略,如:for( ; ; ) ,如果理解? 以上五个小问题,在讨论后请给出程序例子加以验证;,