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