在Java中“{”和“}”组成一个代码块(code block),如我们最常用到的static代码块,而每个代码块都可以用一个Label,Label不是Java中的关键字,而是一个任意的标识符。由于我们一般不怎么用Label,此时难免会有人问:Label到底有什么用呢?大家不要急,且听我慢慢道来。
试想一个这样的场景:有一个两重循环,但是当在内层循环中找到了满足的条件,就停止两重循环就退出执行。不难想到肯定会用break关键字,但是如果仅仅是break,那么Java默认只会退出当前循环,即内层循环。如:
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
System.out.println("Even number: " + i + ", break from INNER label");
if(i == 1){
break;
}
}
}
Even number: 0, break from INNER label
Even number: 0, break from INNER label
Even number: 0, break from INNER label
Even number: 0, break from INNER label
Even number: 1, break from INNER label
Even number: 2, break from INNER label
Even number: 2, break from INNER label
Even number: 2, break from INNER label
Even number: 2, break from INNER label
Even number: 3, break from INNER label
Even number: 3, break from INNER label
Even number: 3, break from INNER label
Even number: 3, break from INNER label
//Outer loop checks if number is multiple of 2
OUTER: //outer label
for(int i = 0; i < 4; i++){
INNER: //inter label
for(int j = 0; j < 4; j++){
System.out.println("Even number: " + i + ", break from INNER label");
if(i == 1){
break OUTER;
}
}
}
Even number: 0, break from INNER label
Even number: 0, break from INNER label
Even number: 0, break from INNER label
Even number: 0, break from INNER label
Even number: 1, break from INNER label
//Outer loop checks if number is multiple of 2
OUTER: //outer label
for(int i = 0; i < 4; i++){
if(i % 2 == 0){
System.out.println("Odd number: " + i + ", continue from OUTER label");
continue OUTER;
}
INNER: //inter label
for(int j = 0; j < 4; j++){
System.out.println("Even number: " + i + ", break from INNER label");
// if(i == 1){
// break OUTER;
// }
break INNER;
}
}
Odd number: 0, continue from OUTER label
Even number: 1, break from INNER label
Odd number: 2, continue from OUTER label
Even number: 3, break from INNER label
boolean flag = true;
JUDGE:
if(flag){
System.out.println("It is " + flag);
}
CODE:{
int a = 4;
int b = 5;
System.out.println(a * b);
}