JAVAで多重ネストループを飛び出すいくつかの方法
1718 ワード
一、ラベルの方式はC言語のgotoに似ていて、使い方は最外層の循環の上にラベルを置いて、それから奥層の循環コードの中でbreak+ラベルの方式を使って、最外層の循環にジャンプすることができます
二、break、continue breakは現在のサイクルを飛び出し、内部飛び出し条件で外部サイクルを制御し、continueの場合は今回のサイクルをスキップして次のサイクルに入る
三、異常放出
通常、ラベルは使用されませんが、外層のループ条件式の結果は、2次元配列で数値を検索するなど、内層ループ体コードによって制御されます.
public static void main(String[] args) {
outer:
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
if(i==1){
continue outer;// continue ,
}
System.out.println("i="+i+" j="+j);
}
}
System.out.println(" !");
}
:
i=0 j=0
i=0 j=1
i=2 j=0
i=2 j=1
!
public static void main(String[] args) {
outer:
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
if(i==1){
break outer;// break
}
System.out.println("i="+i+" j="+j);
}
}
System.out.println(" !");
}
:
i=0 j=0
i=0 j=1
!
二、break、continue breakは現在のサイクルを飛び出し、内部飛び出し条件で外部サイクルを制御し、continueの場合は今回のサイクルをスキップして次のサイクルに入る
for(int i=0;i<4;i++){
for(int j=0;j<5;j++){
System.out.println("i="+i+"; j="+j);
if(j==3) {
i=4;
break;
}
}
}
三、異常放出
try {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("i=" + i + "; j=" + j);
if (j == 3) {
throw new Exception();
}
}
}
} catch (Exception e) {
System.out.println("e");
}
通常、ラベルは使用されませんが、外層のループ条件式の結果は、2次元配列で数値を検索するなど、内層ループ体コードによって制御されます.
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i