break文

break文 #

ループを抜け出す際に用いるbreak文についてを示す。

ループ処理のfor文、while文において、処理の途中にbreakがあった場合、ループを途中で中断し、ループから抜け出してくれる。
ループを何重にも重ねていた場合は、そのbreakがある一番内側のループにbreakが適用される。

class Main{
  public static void main(String args[]){

    for(int i=0;i<5;i++){
      //i>3になったらループ中断して抜け出す
      if(i>3){
        break;
      }
      //0..3までprint  それより上はbreakで中断されるためここには来ない
      System.out.println(i);
    }

    System.out.println();

    for(int i=0;i<3;i++){
      System.out.println(i);

      for(int j=0;j<3;j++){
        //j>1になったらループ中断して抜け出す が、抜け出せるのはjのループだけ
        //iのループを抜け出したい時は、その階層内でbreakを設ける
        if(j>1){
          break;
        }

        //j=0..1までprintされる
        System.out.println(i+" "+j);
      }
    }

  }
}

実行結果

> java Main
0
1
2
3

0
0 0
0 1
1
1 0
1 1
2
2 0
2 1

ちなみに、switch文ではこのbreak文は必須である。
break文がない場合、該当したcase文以下のcase文の処理が行われてしまうので注意。

実行例を以下に示す。

class Main{
  public static void main(String args[]){
    int k=1;
    switch(k){
      case 1:
        System.out.println(1);
        //break;
      case 2:
        System.out.println(2);
        //break;
      default:
        System.out.println("default");
        //break;
    }

  }
}

実行結果

> java Main      
1
2
default

この例の場合、本当はcase 1の所の処理だけ行わせたいのだが、breakを置かない場合case 1の下、case 2やdefaultの処理も順に行ってしまう。switch文でbreakを設けるのはこれが理由。

break文の使い方はPythonもjavaと同じ。
途中で中断したいfor,whileループの中に設定する。

>>> for i in range(5): 
...     if(i>3):
...             break
...     print(i)
... 
0
1
2
3
>>>
>>> for i in range(3):
...     for j in range(3):
...             if(j>1):
...                     break
...             print(i,j) 
... 
0 0
0 1
1 0
1 1
2 0
2 1
>>>

Javascriptにおいてもbreak文の使い方は同じである。
途中で中断したいfor,whileループの中に設定する。

使用例

for(var i=0;i<10;i++){
  console.log(i);
  if(i>=5){
    break;
  }
}

結果

0
1
2
3
4
5