在有些情况下,我们可能需要对循环进行特殊处理,例如:当满足某个条件时,跳出当前循环或者跳过循环本次执行,但是循环语句继续执行后续循环。
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