写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著
break语句有两种情况:
1、break
break 语句用来结束其所在的最内层的封闭的do、while、for或者switch语句,在其他地方使用break 会产生编译错误。
简单例子1(while):
public class firstestbre1 {
public static void main(String[] args) {
int x = 0;
while (3 < 5 ) { // 3 < 5 恒为true,故不会自行结束循环
System.out.println(x);
x ++;
if ( x >= 3 ) { // 设定循环结束条件
break; //当 x >= 3 时,结束while循环
}
}
}
}
运行结果为:
0
1
2
注意:上述代码中 x ++放在 if 语句前和放在 if 语句后输出不同,放在 if 语句后,“ 3 ” 也会被输出。
例子2(for):
public class firstestbre2 {
public static void main(String[] args) {
int x = 21;
for ( ; x < 25 ; x ++ ) {
for(int y = 1 ; y < 4 ; y ++ ) {
if ( x <= 23) {
System.out.println(x + "+" +y );
break;
}
}
break;
}
}
}
两个 break 语句使得两个 for 语句均只循环一次,运行结果为:
21+1
当删除第8行break语句、保留第11行break语句时,第一个for 语句是break所在的最内层语句,故第一个 for 语句只能循环一次,第二个 for 语句可以正常循环三次,运行结果是:
21+1
21+2
21+3
当保留第8行break语句、删除第11行break语句时,第二个for 语句是break所在的最内层语句,故第二个 for 语句只能循环一次,第一个 for 语句可以循环三次,运行结果是:
21+1
22+1
23+1
当同时删除第8行和第11行break语句语句时,两个 for 语句都可以正常循环三次,运行结果是:
21+1
21+2
21+3
22+1
22+2
22+3
23+1
23+2
23+3
2、break + 标签
标签的作用是标记语句块,“ break + 标签 ”代表跳出标签所代表的语句块,由于break只能在do、while、for和switch语句中使用,故break后跟的标签必须是标记这些语句块的,不然会出错,先介绍简单例子:
public class firstest {
public static void main(String[] args) {
// 输出个位数相加和为15的组合
label_dem01: //标记第一个 for 语句
for (int i = 0; i < 10; i++) {
label_dem02: //标记第二个 for 语句
for (int k = 0; k < 10; k++) {
if (k + i == 15) { //如果相加为15,则输出
System.out.println(i + "+" + k); //输出当前 i 和 k 的值
break label_dem01; //返回第一个 for 语句
}
}
}
}
}
这段代码是输出个位数相加和为 15 的组合,“ break + 标签 ”决定了当出现符合条件的组合时结束标签标记的循环。
上述代码第十行,label_dem01标签标记了第一个for语句,即跳出最外层循环,故输出结果为:
6+9
当第十行标签改为label_dem02,即标记了第二个 for语句时,
public class firstest {
public static void main(String[] args) {
// 输出个位数相加和为15的组合
label_dem01: //标记第一个 for 语句
for (int i = 0; i < 10; i++) {
label_dem02: //标记第二个 for 语句
for (int k = 0; k < 10; k++) {
if (k + i == 15) { //判断条件
System.out.println(i + "+" + k); //输出当前 i 和 k 的值
break label_dem02; //返回第一个 for 语句
}
}
}
}
}
只跳出内层循环,外层循环仍可继续,故输出结果为:
6+9
7+8
8+7
9+6
切记:标签后必须立即跟do、while、for、witch语句,不然标签不能标记这些语句。
例如下面这两张图片:
back1 标签并没有立即跟 for 语句,故 第13行 “ break + back1 ”出错;标签 back2 后面立即跟了 for 语句,故 “ break + back2 ”不会出错。