Java从零开始学八(循环结构)
一、循环结构
循环结构则是根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落就称为循环主体。
二、While循环
while是循环语句,也是条件判断语句。当事先不知道循环该执行多少次的时,就要用到while循环。while循环的格式如下:
while (循环条件判断){
语句1 ;
语句2 ;
…
语句n ;
循环条件更改 ;
}
示例一、使用While进行100以内累加操作
package loop; public class test1 { public static void main(String[] args) { // 使用While进行100以内累加操作 int sum=0; //定义变量保存累加的值 int i=1; //定义整型变量i while(i<=100){ sum+=i; i++; } System.out.println("100以内整数之和: "+sum); } }
结果:100以内整数之和: 5050
While是先判断条件是否成立,如果成立则进入循环,不成立则跳过循环
示例二、同上i的值变为101
package loop; public class test { public static void main(String[] args) { // 使用While进行100以内累加操作 int sum=0; //定义变量保存累加的值 int i=101; //定义整型变量i while(i<=100){ sum+=i; i++; } System.out.println("100以内整数之和: "+sum); } }
结果:100以内整数之和: 0
三、do-while循环
do…while循环也是用于未知循环执行次数的时候,而while循环及do…while循环最大不同就是进入while循环前,while语句会先测试判断条件的真假,再决定是否执行循环主体,而do…while循环则是“先做再说”,每次都是先执行一次循环主体,然后再测试判断条件的真假,所以无论循环成立的条件是什么,使用do…while循环时,至少都会执行一次循环主体,语句格式:
do{
语句1 ;
语句2 ;
….
语句n ;
循环条件改变 ;
}while (循环条件判断);
示例三、使用do-While进行100以内累加操作
package loop; public class test { public static void main(String[] args) { // 使用While进行100以内累加操作 int sum=0; //定义变量保存累加的值 int i=1; //定义整型变量i do{ sum+=i; i++; }while(i<=100); System.out.println("100以内整数之和: "+sum); } }
结果:100以内整数之和: 5050
四、for循环
对于while和do…while两种循环来讲,操作时并不一定非要明确的知道循环的次数,而如果开发者已经明确的知道了循环次数的话,那么就可以使用另外一种循环语句——for循环。 格式如下:
for (赋值初值;判断条件;赋值增减量){
语句1 ;
….
语句n ;
}
示例四、使用for进行100以内累加操作
package loop; public class test2 { public static void main(String[] args) { // 使用for进行100以内累加操作 int sum=0; //定义变量保存累加的值 for(int i=1; i<=100;i++){ sum=sum+i; } System.out.println("100以内整数之和: "+sum); } }
结果:100以内整数之和: 5050
4.1循环嵌套
示例五、for循环打印99乘法表
package loop; public class test3 { public static void main(String[] args) { // 使用for循环打印99乘法表 for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(j*i)+"\t"); } System.out.println(); } } }
结果:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
五、break语句
break语句可以强迫程序中断循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则break 语句只会跳出当前层的循环。以下图的for循环为例,在循环主体中有break语句时,当程序执行到break,即会离开循环主体,而继续执行循环外层的语句。
示例六、实现输出1-10,遇到4时使用break;
package loop; public class test4 { public static void main(String[] args) { // 实现输出1-10,遇到4时程序退出 for(int i=1;i<=10;i++){ if (i==4){ break; } System.out.print(i+" "); } System.out.println("循环结束"); } }
结果:1 2 3 循环结束
六、continue语句
continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。以下图的for循环为例,在循环主体中有continue语句,当程序执行到continue,即会回到循环的起点,继续执行循环主体的部分语句。
continue是跳过当前循环进入下次循环
示例七、同上实现输出1-10,遇到4时使用continue;
package loop; public class test4 { public static void main(String[] args) { // 实现输出1-10,遇到4时使用continue for(int i=1;i<=10;i++){ if (i==4){ continue; } System.out.print(i+" "); } System.out.println("循环结束"); } }
结果:1 2 3 5 6 7 8 9 10 循环结束
七、return语句
结束当前方法的执行并退出,返回调用该方法的语句处。
示例入、同上实现输出1-10,遇到4时使用return;
package loop; public class test4 { public static void main(String[] args) { // 实现输出1-10,遇到4时使用return for(int i=1;i<=10;i++){ if (i==4){ return; } System.out.print(i+" "); } System.out.println("循环结束"); } }
结果:1 2 3
可以看到“循环结束”没有输出,当i=4时,满足执行return,结束整个方法的执行