label を使って多重ループから一気に抜ける

まじか!知らなかった・・・orz
何年 Java やってるんだ・・・ orz

label: //外側のwhile文にラベルをつける
while (true) {
  while (true) {
    if (条件式) break label;
  }
}

3重のループだって抜けられちゃう!

label: for (int i = 0; i < 10; i++) {
  for (int j = 0; j < 10; j++) {
    for(int k = 0 ; k < 10 ; k ++) {
      System.out.println(" i.." + i + ", j.." + j + ", k.." + k);
      if (k == 5) {
        break label;
      }
    }
  }
}

今まで多重ループを抜ける時は内側のループでフラグを立てて、外側のループでそれを判定して break してたな・・・。次からこれ使ってみようかな。

- 参考 -
http://ja.wikipedia.org/wiki/Break%E6%96%87