《java循环结构程序设计课件.ppt》由会员分享,可在线阅读,更多相关《java循环结构程序设计课件.ppt(46页珍藏版)》请在三一办公上搜索。
1、1,第四章 循环结构程序设计,while循环,4.1,do-while循环,4.2,for循环,4.3,循环嵌套,4.4,跳转语句,4.5,2,一个男孩向一个女孩表明爱慕之意,要说一百遍“我爱你!”,System.out.println(我爱你!);System.out.println(我爱你!);System.out.println(我爱你!);System.out.println(我爱你!);System.out.println(我爱你!);,100条,为什么需要循环,int i=1;while(i=100)System.out.println(我爱你!);i+;,3,为什么需要循环,Sy
2、stem.out.println(我是最棒的!);System.out.println(我是最棒的!);System.out.println(我是最棒的!);System.out.println(我是最棒的!);System.out.println(我是最棒的!);System.out.println(我是最棒的!);System.out.println(我是最棒的!);,int i=1;while(i=100)System.out.println(“我爱你!);i+;,i=10000,我是最棒的!);,没有使用循环结构,使用while循环,输出10000次“我是最棒的!”,4,什么是循环,生
3、活中的循环:重复做同样的事情,打印50份试卷,10000米赛跑,旋转的车轮,循环结构的特点,5,while循环,while(循环条件)循环操作,条件为真,循环继续执行;否则,循环退出,循环中被重复执行的操作,int i=1;while(i=30)System.out.println(我能行!);i+;,6,使用while循环的步骤1、分析循环条件和循环操作2、套用while语法写出代码3、检查循环是否能够退出,怎样使用while循环,/用while实现求从1加到100的和 int i=1;int sum=0;while(i=100)sum=sum+i;i+;System.out.println
4、(sum=+sum);,循环条件,循环操作,7,while循环常见问题1,/*打印4次“北京欢迎你”*/public static void main(String args)int i=0;while(i 4)System.out.println(北京欢迎你);i+;,永远都不会退出的循环称为死循环,循环一直执行,不会退出,哪里出错了?,8,while循环常见问题2,/*打印4次“北京欢迎你”*/public static void main(String args)int i=1;while(i 4)System.out.println(北京欢迎你);i+;,i=4,只打印了三次,哪里出错
5、了?,注意检查循环次数是否满足需求,9,while循环常见问题3,/*打印4次“北京欢迎你”*/public static void main(String args)int i=1;while(i 5)System.out.println(北京欢迎你);i+;,注意:如果一开始条件就不满足,while循环一次都不执行,i 5,一次都没有打印,哪里出错了?,10,上机练习,编程输出1100之间能被3整除的数。,11,while循环应用,循环录入某学生的5门课成绩,计算平均分,循环次数:5循环条件:循环的次数不足5,继续循环循环操作:录入成绩,并累计求和,12,while循环应用,int i=1
6、;int score,sum,avg;while(i=5)/循环5次录入5门课成绩 System.out.print(请输入5门功课中第+i+门课的成绩:);score=input.nextInt();sum=sum+score;i+;avg=sum/5;/计算平均分 System.out.println(name+的平均分是:+avg);,循环录入一个学生的5门课成绩,计算平均分,循环操作执行5次,13,编写程序,输入一个1100之间的整数,显示1到该数的平方。,上机练习,14,编写猜数游戏程序 计算机随机产生04间的整数,用户从键盘猜,一共猜3次,统计有几次猜中。若猜中23次以上,输出“你
7、太有才了!”,猜中1次输出“很聪明呀!”,未猜中输出“多努力!”。,上机练习,提示:使用Math.random()可以产生0 1之间的随机数int number=(int)(Math.random()*5);/产生04之间的随机整数,15,do-while循环,如何用程序讲述下面的故事?,表演大赛在即,领导决定:彩排一次,如果令人满意,以后就不用彩排了,否则每天都要彩排,直到满意为止!,do 循环操作while(循环条件);,while(循环条件)循环操作,while循环先判断,再执行,不适合描述此故事,?,16,do-while循环,do 循环操作 while(循环条件);,先执行一遍循环操
8、作,符合条件,循环继续执行;否则,循环退出,特点:先执行,再判断,17,怎样使用do-while循环,do System.out.println(表演节目);System.out.print(可以了吗?(y/n):);answer=input.next();while(!answer.equals(y);System.out.println(大功告成!);,循环条件,先执行一遍循环操作,18,怎样使用do-while循环,/用do-while实现求从1加到100的和 int i=1;int sum=0;do sum=sum+i;i+;while(i=100);System.out.printl
9、n(sum=+sum);,循环条件,先执行一遍循环操作,19,while循环和do-while循环的区别语法不同初始情况不满足循环条件时while循环一次都不会执行do-while循环不管任何情况都至少执行一次,do 循环操作 while(循环条件);,while(循环条件)循环操作,先判断,再执行,先执行,再判断,比较while和do-while,20,上机练习,连续录入学生姓名,输入“q”则退出,21,编写程序,实现成绩管理菜单的显示和选择,上机练习,22,为什么使用for循环,int i=0;while(i100)System.out.println(我最棒);i+;,for(int i
10、=0;i100;i+)System.out.println(我最棒);,for比while更简洁,while循环结构,for循环结构,输出一百遍“我最棒”。,23,for循环的语法和执行顺序,for循环,for(;);,条件为true,循环体被执行,for(int i=0;i 100;i+)System.out.println(我最棒);,表达式1,表达式2,表达式3,循环操作,参数初始化,条件判断,更新循环变量,1,2,4,3,24,for循环,for(表达式1;表达式2;表达式3)循环操作,/*求1到100的和*/int sum=0;for(int i=1;i=100;i+)sum=sum
11、+i;System.out.println(sum=+sum);,25,如何使用for循环,/省略声明变量 for(int i=0;i 5;i+)/循环5次录入5门课成绩 System.out.print(请输入5门功课中第+(i+1)+门课的成绩:);score=input.nextInt();sum=sum+score;avg=sum/5;/计算平均分 System.out.println(name+的平均分是:+avg);,初始值:i=0循环条件:i5循环变量改变:i+,循环操作执行5次,循环录入一个学生的5门课成绩,计算平均分,26,for循环常见问题1,for(;i10;i+)Sys
12、tem.out.println(这是+i);,int i=0;,编译错误:变量 i 没有初始化,for(;);,不能省略,可省略,表达式1省略,循环变量的初始值在for语句之前由赋值语句取得,27,for循环常见问题2,for(int i=0;i+)System.out.println(这是+i);,编译正确,但是缺少循环条件,造成死循环,28,for循环常见问题3,for(int i=0;i10;)System.out.println(这是+i);,i+;,省略表达式3,在循环体内应设法改变循环变量的值以结束循环,编译通过,但是循环变量的值无变化,造成死循环,29,上机练习,编程求1100之
13、间的偶数和,要求使用for循环,30,上机练习,编程输出所有的水仙花数。水仙花数是三位数,每一位的立方和等于该数。例如:153=1*1*1+5*5*5+3*3*3,所以153是一个水仙花数,31,循环嵌套是指在一个循环结构中又包含另一个循环结构。while、do-while、for三种循环可互相嵌套,层数不限。理解嵌套循环的执行流程,循环嵌套,int i,j;System.out.println(i j);for(i=0;i2;i+)for(j=0;j2;j+)System.out.println(i+j);,32,循环嵌套,int i,j;for(i=1;i=3;i+)for(j=1;j=4
14、;j+)System.out.print(*);,System.out.println();,嵌套循环时,必须将被嵌套的循环语句完整地包含在 外层循环的循环体内嵌套循环执行时,外循环变量变化一次,内循环从头 到尾执行一遍。,33,循环嵌套,int i,j;for(i=1;i=4;i+)for(j=1;j=i;j+)System.out.print(*);System.out.println();,输出结果*,34,编写程序,输出九九乘法表。,上机练习,35,编程解决百钱百鸡问题。鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?,上机练习,36,break语句,i
15、nt i=2;switch(i)case 1:System.out.println(星期一);break;case 2:System.out.println(星期二);break;/其他语句,遇到break,立即跳出switch语句,回顾break用于switch语句,描述4000米长跑比赛,for(int i=0;i10;i+)跑400米;,if(不能坚持)break;/退出比赛,第8圈,快累死了我要退出,37,break语句,break:改变程序控制流用于do-while、while、for中时,可跳出循环而执行循环后面的语句,while()break;,跳出整个循环,break通常在循环
16、中与条件语句一起使用,38,break语句,public class Test1 public static void main(String args)int flag=3;for(int i=1;i=5;i+)if(i=flag)break;System.out.println(i=+i);,运行结果:i=1i=2,39,如何使用break语句,循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误,循环录入成绩,判断录入正确性:如果录入错误,使用break语句立刻跳出循环;否则,累加求和,40,如何使用break语句,for(int i=0;i 5;i+)/循
17、环5次录入5门课成绩 System.out.print(请输入5门功课中第+(i+1)+门课的成绩:);score=input.nextInt();/从控制台接收数据 if(score 0)flag=false;/出错标识 break;/退出循环 sum=sum+score;循环外的语句,对录入的分数进行判断,如果小于0,标记出错状态,并立即跳出整个for循环,41,110之间的整数相加,得到累加值大于20的当前数,1、使用循环进行累加,从1到102、判断累加值是否大于203、如果大于20,则输出当前值,并跳出循环,上机练习,42,continue语句,continue:只能用在循环里cont
18、inue 作用:跳过循环体中剩余的语句而执行下一次循环,while()continue;,继续下一次循环,通常与条件语句一起使用,加速循环,for(int i=0;i10;i+)跑400米;if(!口渴)continue;/不喝水,继续跑 接过矿泉水,喝水;,示例,43,continue语句,public class Test2 public static void main(String args)int flag=3;for(int i=1;i=5;i+)if(i=flag)continue;System.out.println(i=+i);,运行结果:i=1i=2i=4i=5,44,如何
19、使用continue,循环录入Java课的学生成绩,统计分数大于等于80分的学生比例,1、通过循环,获取分数大于等于80分的学生人数num2、判断:如果成绩80,不执行num+,直接进入下一次循环,45,如何使用continue,for(int i=0;i total;i+)System.out.print(请输入第+(i+1)+位学生的成绩:);score=input.nextInt();if(score 80)continue;num+;/大于等于80分的人数double rate=(double)num/total*100;System.out.println(80分以上的学生所占的比例为:+rate+%);,对录入的分数进行判断,如果小于80,跳出本次循环,执行下一次循环,46,1、使用循环进行累加,循环的范围是从1至102、判断当前数是否为偶数3、如果为奇数结束本次循环,如果为偶数,则进行累加,上机练习,求110之间的所有偶数和,要求使用continue。,