循环结构的控制
1,break语句
2,continue语句
3,return语句
break语句;
在Java中,我们可以通过一些语句,比如break,continue,return来控制循环语句的执行;
这里举例下:
我们写一个嵌套循环打印i和j;
package com.java1234.chap02; public class Demo17 { public static void main(String[] args) { for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ System.out.print("i="+i+" "+"j="+j+" "); } System.out.println(); } } }
执行输出:
i=0 j=0 i=0 j=1 i=0 j=2 i=0 j=3 i=0 j=4 i=0 j=5 i=0 j=6 i=0 j=7 i=0 j=8 i=0 j=9
i=1 j=0 i=1 j=1 i=1 j=2 i=1 j=3 i=1 j=4 i=1 j=5 i=1 j=6 i=1 j=7 i=1 j=8 i=1 j=9
i=2 j=0 i=2 j=1 i=2 j=2 i=2 j=3 i=2 j=4 i=2 j=5 i=2 j=6 i=2 j=7 i=2 j=8 i=2 j=9
i=3 j=0 i=3 j=1 i=3 j=2 i=3 j=3 i=3 j=4 i=3 j=5 i=3 j=6 i=3 j=7 i=3 j=8 i=3 j=9
i=4 j=0 i=4 j=1 i=4 j=2 i=4 j=3 i=4 j=4 i=4 j=5 i=4 j=6 i=4 j=7 i=4 j=8 i=4 j=9
i=5 j=0 i=5 j=1 i=5 j=2 i=5 j=3 i=5 j=4 i=5 j=5 i=5 j=6 i=5 j=7 i=5 j=8 i=5 j=9
i=6 j=0 i=6 j=1 i=6 j=2 i=6 j=3 i=6 j=4 i=6 j=5 i=6 j=6 i=6 j=7 i=6 j=8 i=6 j=9
i=7 j=0 i=7 j=1 i=7 j=2 i=7 j=3 i=7 j=4 i=7 j=5 i=7 j=6 i=7 j=7 i=7 j=8 i=7 j=9
i=8 j=0 i=8 j=1 i=8 j=2 i=8 j=3 i=8 j=4 i=8 j=5 i=8 j=6 i=8 j=7 i=8 j=8 i=8 j=9
i=9 j=0 i=9 j=1 i=9 j=2 i=9 j=3 i=9 j=4 i=9 j=5 i=9 j=6 i=9 j=7 i=9 j=8 i=9 j=9
假如我们有一个需求,把第二行 i=1的情况 不输出,这时候,我们可以用到break,结束当前循环;
上代码:
package com.java1234.chap02; public class Demo17 { public static void main(String[] args) { for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ if(i==1){ break; } System.out.print("i="+i+" "+"j="+j+" "); } System.out.println(); } } }
这里,当i==1的时候,break 结束内层的整个循环;
我们执行输出:
i=0 j=0 i=0 j=1 i=0 j=2 i=0 j=3 i=0 j=4 i=0 j=5 i=0 j=6 i=0 j=7 i=0 j=8 i=0 j=9
i=2 j=0 i=2 j=1 i=2 j=2 i=2 j=3 i=2 j=4 i=2 j=5 i=2 j=6 i=2 j=7 i=2 j=8 i=2 j=9
i=3 j=0 i=3 j=1 i=3 j=2 i=3 j=3 i=3 j=4 i=3 j=5 i=3 j=6 i=3 j=7 i=3 j=8 i=3 j=9
i=4 j=0 i=4 j=1 i=4 j=2 i=4 j=3 i=4 j=4 i=4 j=5 i=4 j=6 i=4 j=7 i=4 j=8 i=4 j=9
i=5 j=0 i=5 j=1 i=5 j=2 i=5 j=3 i=5 j=4 i=5 j=5 i=5 j=6 i=5 j=7 i=5 j=8 i=5 j=9
i=6 j=0 i=6 j=1 i=6 j=2 i=6 j=3 i=6 j=4 i=6 j=5 i=6 j=6 i=6 j=7 i=6 j=8 i=6 j=9
i=7 j=0 i=7 j=1 i=7 j=2 i=7 j=3 i=7 j=4 i=7 j=5 i=7 j=6 i=7 j=7 i=7 j=8 i=7 j=9
i=8 j=0 i=8 j=1 i=8 j=2 i=8 j=3 i=8 j=4 i=8 j=5 i=8 j=6 i=8 j=7 i=8 j=8 i=8 j=9
i=9 j=0 i=9 j=1 i=9 j=2 i=9 j=3 i=9 j=4 i=9 j=5 i=9 j=6 i=9 j=7 i=9 j=8 i=9 j=9
我们发现 i=1的这行 没有输出;
关键break 还有一个break标签 我们可以从内层跳到外层,结束外层循环;
比如我们只需要输出第一行 我们时候可以用标签实现:
package com.java1234.chap02; public class Demo17 { public static void main(String[] args) { outer: for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ if(i==1){ break outer; } System.out.print("i="+i+" "+"j="+j+" "); } System.out.println(); } } }
输出:
i=0 j=0 i=0 j=1 i=0 j=2 i=0 j=3 i=0 j=4 i=0 j=5 i=0 j=6 i=0 j=7 i=0 j=8 i=0 j=9
continue语句;
continue是结束当前循环,比如我们输出1到10 但是我们需要把3和6剔除,这时候我们可以用continue来实现:
package com.java1234.chap02; public class Demo17 { public static void main(String[] args) { for(int i=1;i<=10;i++){ if(i==3 || i==6){ continue; } System.out.print("i="+i+" "); } } }
运行输出:
i=1 i=2 i=4 i=5 i=7 i=8 i=9 i=10
return语句;
return语句的话,比较狠,直接结束方法里的内容执行了。
package com.java1234.chap02; public class Demo17 { public static void main(String[] args) { for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ if(i==1){ return; } System.out.print("i="+i+" "+"j="+j+" "); } System.out.println(); } System.out.println("执行到这里"); } }
输出:
i=0 j=0 i=0 j=1 i=0 j=2 i=0 j=3 i=0 j=4 i=0 j=5 i=0 j=6 i=0 j=7 i=0 j=8 i=0 j=9