在有些情况下,我们可能需要对循环进行特殊处理,例如:当满足某个条件时,跳出当前循环或者跳过循环本次执行,但是循环语句继续执行后续循环。
break 语句的作用是终止所在的 switch 语句或循环语句的运行,循环语句中 break 语句的使用格式可分为两种:
方式一:终止所在循环语句的运行,只能终止 break 语句所在的循环
break;
方式二:如果存在多层嵌套循环,则终止<标签>标记的外层循环的运行
break <标签>;
示例:演示“break”语句的使用,跳出当前循环。代码如下:
public class Demo { public static void main(String[] args) { for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { if(j > i) { // 跳出内层循环 break; } System.out.print(j + "\t"); } System.out.println(); } } }
运行示例,输出结果如下:
0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4 5 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9
示例:演示 “break <label>”语句跳出多层循环,代码如下:
public class Demo { public static void main(String[] args) { myLabel: for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { if(i > 4) { // 跳出到外部循环 break myLabel; } if(j > i) { // 跳出内层循环 break; } System.out.print(j + "\t"); } System.out.println(); } } }
运行示例,输出结果如下:
0 0 1 0 1 2 0 1 2 3 0 1 2 3 4
continue 语句的作用是结束所在循环语句的本次运行,即跳过其后的循环体语句,开始下一次循环。语法如下:
方式一:跳过所在循环的本次运行
continue;
方式二:在多层嵌套循环中,跳过标签标记的外层循环的本次运行
continue <标签>;
示例:使用 continue 打印 0 ~ 10 的偶数,代码如下:
public class Demo { public static void main(String[] args) { for(int i = 0; i < 10; i ++) { if(i % 2 == 0) { continue; } System.out.println(i); } } }
运行示例,输出结果如下:
1 3 5 7 9
示例:检索每个字符串中,字符“o”首次出现的索引,代码如下:
public class Demo { public static void main(String[] args) { String[] strs = { "hello", "administrator", "world" }; myLabel: for(String str : strs) { for(int i = 0; i < str.length(); i++) { char c = str.charAt(i); if(c == 'o') { System.out.println(str + " ==> " + i); continue myLabel; } } } } }
运行示例,输出结果如下:
hello ==> 4 administrator ==> 11 world ==> 1