Java でブロックにラベルを付ける

こんにちは、開発担当の Masa です。

Java ではループ処理にラベルを付けて制御することが可能なのは良く知られていると思いますが、
ブロックにラベルを付けてブロック内から脱出することも可能です。

「ラベルを付ける部分はサブルーチンに出来るはずだからラベルは使わない」という意見も見かけますが、
意味のあるブロックをサブルーチン化したことでコードは綺麗になっても、全体を見る必要がある処理では
可読性が落ちることもあるんではないでしょうか。

開発中にその状況になったので有難くブロックのラベルを使用させていただきました。
あって良かった、ラベル!!

ブロックにラベルを付ける

ラベル:{
  処理;
  if (条件) {
    break ラベル;
  }

  for (条件) {
    処理;
    while (true) {
      if (true) {
        break ラベル;
      }
    }
  }

  処理;
}

(おまけ)ループ処理にラベルを付ける

  ラベル:while (true) {
    while (true) {
      if (true) {
        break ラベル;
      }
    }
  }