多重ネストから脱出

Revised: Dec./26th/2001: Since: Dec./26th/2001

多重ネストがあるとき、下層ブロック内で break 文を使うと、制御は一つ上のブロックに戻ります。多重ネストを一度に脱出したい場合は、大元のブロックにラベルを貼っておきます。脱出時にこのラベルを指定すれば、ラベルが貼られたブロックの外側に制御を移すことが出来ます。

サンプル

class TestLabel{
  public static void main(String args[]){
    escape:
      for(int i=0; i<=9; i++){
        System.out.print(i+": ");
        for(int j=0; j<=9; j++){
          System.out.print(" "+i*j);
          if(i*j>=20){     //積が20以上になれば
               break escape;  //ラベルで指定した階層へ脱出
            }
        } //jループ終了
          System.out.println("");
      }   //iループ終了
  }
}
C:\Java<javac TestLabel.java
C:\Java<java TestLabel
0:  0 0 0 0 0 0 0 0 0 0
1:  0 1 2 3 4 5 6 7 8 9
2:  0 2 4 6 8 10 12 14 16 18
3:  0 3 6 9 12 15 18 21


Copyright © 2001 SUGAI, Manabu. All Rights Reserved.