首先我们先看一个程序
程序一break
public class test02 {
public static void main(String[] args) {
for (int i = 1;i<=10;i++){
if(i%4==0){
break;
}
System.out.print(i);
}
System.out.println();
//*********************
for (int i=1;i<=4;i++){
for (int j = 1;j<=10;j++){
if(j%4==0){
break;//默认跳出包裹此关键字最近的一层循环。
}
System.out.print(j);
}
System.out.println();
}
}
}
程序二continue
public class test02 {
public static void main(String[] args) {
for (int i = 1;i<=10;i++){
if(i%4==0){
break;
}
System.out.print(i);
}
System.out.println();
//*********************
for (int i=1;i<=4;i++){
for (int j = 1;j<=10;j++){
if(j%4==0){
continue;//默认跳出包裹此关键字最近的一层循环。
}
System.out.print(j);
}
System.out.println();
}
}
}
分析
我们对这两个程序进行分析,这两个break和continue是结束最近的这个for,name有没有直接方法结束最外层的这个for呢?
我们可以加上标签label,下面再看程序三和程序四。
程序三label标签:break label
public class test02 {
public static void main(String[] args) {
for (int i = 1;i<=10;i++){
if(i%4==0){
break;
}
System.out.print(i);
}
System.out.println();
//*********************
label:for (int i=1;i<=4;i++){
for (int j = 1;j<=10;j++){
if(j%4==0){
break label;//结束指定标识的一层循环结构。
}
System.out.print(j);
}
System.out.println();
}
}
}
结果
程序四label标签:continue label
public class test02 {
public static void main(String[] args) {
for (int i = 1;i<=10;i++){
if(i%4==0){
break;
}
System.out.print(i);
}
System.out.println();
//*********************
label:for (int i=1;i<=4;i++){
for (int j = 1;j<=10;j++){
if(j%4==0){
continue label;//结束指定标识的一层循环结构。
}
System.out.print(j);
}
System.out.println();
}
}
}
结果