1. 問題描述
當有多個for循環的時候,如何跳出最外層循環?
2. 解決方案
2.1 正常單個for循環
package com.example.demo;
public class TestFor {
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
System.out.println(i);
}
}
}
結果:
0
1
2
3
4
5
跳出單層循環,使用break正常跳出。
package com.example.demo;
public class TestFor {
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
if (i > 3) {
break;
}
System.out.println(i);
}
}
}
結果:
0
1
2
3
2.2 多層循環的情況,使用break僅僅是跳出了最里面的循環。
package com.example.demo;
public class TestFor {
public static void main(String[] args) {
for (int j = 0; j < 2; j++) {
for (int i = 0; i < 6; i++) {
if (i > 3) {
break;
}
System.out.println("----IIII值:"+i);
}
System.out.println("----JJJJ值:"+j);
}
}
}
結果:
----IIII值:0
----IIII值:1
----IIII值:2
----IIII值:3
----JJJJ值:0
----IIII值:0
----IIII值:1
----IIII值:2
----IIII值:3
----JJJJ值:1
從結果可以看出,當i大於3的時候,跳出了最里面的i循環,但是外層的j循環還是正常執行了。
2.3 跳出指定層循環
package com.example.demo;
public class TestFor {
public static void main(String[] args) {
jj:
for (int j = 0; j < 2; j++) {
ii:
for (int i = 0; i < 6; i++) {
if (i > 3) {
break jj;
}
System.out.println("----IIII值:"+i);
}
System.out.println("----JJJJ值:"+j);
}
}
}
結果:
----IIII值:0
----IIII值:1
----IIII值:2
----IIII值:3
簡單來說就是給for循環起個名字,命名規則是:名字+半角冒號,例如:jj:,然后在break后面跟上名字,就跳出對應for循環。