for を使ったループをbreak + labelで抜ける


breakによってLOOPから処理を中断して抜け出すことが出来ますが、labelを指定すると、labelのつけられたコードブロック全体を抜け出す事ができます。

下のコードは九九をイメージした掛け算を実行し、答えが20を超えると処理を終わります。
また、掛算演算子の左の値がが1の場合と右の値が奇数の場合は処理を飛ばします。

class  ExamBreak  {
    public  static  void  main(String  args[])  {
  label1:    
        //System.out.println("Do not  insert  statement  between  label and  loop");
        for  ( int  ix1 = 1 ; ix1 < 10  ; ix1++ )  {
                for  ( int  ix2 = 1 ; ix2 < 10  ; ix2++ ) {
                    if  ( ix1 * ix2  > 20 )  {
                         break  label1;                                        
                    }         
                    if  ( ix1 == 1 )  {
                         break;                                        
                    }         
                    if  ( ix2 % 2  == 1)  {
                        continue;
                    }
                    System.out.println(ix1 * ix2);
                }
          }
    }
}

                              

実行結果
コンソールに
4
8
12
16
6
12
18
と表示されます。つまり下のような計算が実行された結果です。

4.........2*2
8.........2*4
12.......2*6
16.......2*8
6.........3*2
12.......3*4
18.......3*6


break
label記述の無いbreakでは内側のLOOPを中断し、外側のLOOPの処理に制御が移ります。
label記述の有るbreakでは内側のLOOPを中断し、labelのついている外側のLOOPも中断して次に制御を移しています。

labelは繰り返しのstatement(コードブロック)につけるもので、繰り返しではないstatementに記述すると、コンパイルエラーになります。

for文の構文の説明はこちら
continueの説明を少々