本文共 2758 字,大约阅读时间需要 9 分钟。
当我们在程序中想要重复性的完成某个操作时,就要用到循环语句结构。在Java中有3种常用的循环语句结构,分别是for循环、while循环和do while循环。
/使用for循环,输出10次相同的语句for(int i=1; i<=10; i++){ System.out.println("我爱Java");}
for循环多用于执行已知循环次数的操作,如数组的遍历,求多个数字的和、平均值以及最值等。
int sum = 0;//获取1-5之间的数字,使用for循环for(int i=1; i<=5; i++){ //累加求和 //sum = sum +i; sum+=i;}//打印结果System.out.println("1-5之间的数据和为:"+sum);//15
while循环的作用也是让代码重复的执行
int i = 1;while (i<=10){ System.out.println("HelloWorld"+i); i++;}
while循环也可以用来求多个数字的和以及平均值,但更多用在循环次数未知的操作中,如下面珠穆朗玛峰案例:
/* 练习:珠穆朗玛峰案例 需求:一张纸的厚度是0.0001米,珠穆朗玛峰的高度是8848米,在理论情况下, 一张纸折叠多少次能超过珠穆朗玛峰的高度?*///1.定义两个变量,一个记录纸的厚度,一个记录山峰的高度double thickness = 0.0001;int peakHeight = 8848;//2.定义一个变量,初始值为0,记录折叠的次数int count = 0; //3.使用while循环,进行重复的折叠动作, zhi<=shanFeng(循环)while (thickness<=peakHight){ //4.在循环中zhi的厚度*2,折叠次数++ thickness *=2;//zhi=zhi*2; count++; System.out.println("第"+count+"次折叠完纸的厚度为:"+thickness);} //5.打印结果System.out.println("最终折叠的次数为:"+count);//27
do…while循环作用也是让代码可以重复执行,但其特点在于先执行循环体,在进行条件判断,所以do while循环最少会进行一次操作。
//使用do..while循环输出1-10的数字int i=1; do{ System.out.println(i); i++; }while (i<=10);
for循环,while循环和 do…while循环的区别:
1)循环体语句执行情况不同:
for循环和while循环都是 先执行循环判断语句, 后执行循环体语句;do...while循环先执行循环体语句,再执行判断语句,循环体语句最少执行一次;
2)定义的变量使用情况不同:
for循环:初始化变量定义在循环内部, 循环结束后变量不能再使用while循环和 do..while循环:初始化变量定义在循环外部,循环结束变量还可以使用
3)使用场合不同
for循环: 适用于明确次数的场合while循环: 适用于不明确循环次数的场合do..while循环: 一般没有使用场合
死循环:无限循环,如果不加外部控制,程序会一直执行下去。但是死循环并不是一个需要避免的问题,在实际工作中,我们常常使用死循环来完成某些特定的功能。
常用的死循环结构一般是while循环的死循环:while (true){ System.out.println("我爱Java!");}
for循环的死循环在工作中几乎不用,只有在java的底层源码可以看到:
for(;;){ System.out.println("我爱Java!");}
在程序运行时,我们有时需要根据需求从控制语句中跳转或者中断,Java提供了break,continue和return关键字来完成相应的操作。
break关键字的作用有两个:
1)结束switch语句;2)跳出(结束)单层循环;
所以break关键字必须写在switch语句或者循环中。
//需求:打印10次我爱Javafor (int i = 1; i <= 10; i++) { //需求:感觉重要的事情说3遍就够了,只打印三次 System.out.println("我爱Java:"+i); if(i==3){ break;//跳出循环 }}
continue关键字的作用是跳出本次循环,继续下一次循环,只能在循环中使用;
//需求:打印10层楼房的奇数层数 for (int i = 1; i <= 10; i++) { //需求:偶数楼层跳过 if(i%2==0){ continue;//跳出本次循环,继续下一次循环 } System.out.println("第"+i+"层");}
return的作用有两个:
1)从当前的方法中退出,返回到该调用的方法的语句处,继续执行下一条语句;2)返回一个值给调用该方法的语句,返回值数据类型必须与方法的声明中返回值的类型一致,可以使用强制类型转换来使数据类型一致;当方法说明中用void声明返回值为空时,不使用reruen,即不返回任何值或者写为“return;”。
在实际使用中,我们需要使用多层循环来完成单一循环不能完成的功能,这时候我们就要用到循环嵌套的方式。三种循环都可以相互嵌套使用,但使用最多的就是for循环嵌套for循环。
//使用循环嵌套 for (int i = 0; i < 24; i++) { //外层循环打印每天0-23小时 for (int j = 0; j <60 ; j++) { //内层循环打印每小时0-59分 System.out.println(i+"时"+j+"分"); }}
转载地址:http://zdwei.baihongyu.com/