• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:なぜコンパイルエラーにならない?)

なぜコンパイルエラーにならない?

このQ&Aのポイント
  • ある問題集の問題なのですが、ラベルをfor か while以外につけているのでコンパイルエラーになるという問題でした。
  • 確かに、打ち込んでみると、コンパイルエラーになります。しかし、continueをbreakに変更すると、コンパイルエラーにはならないのです。
  • テキストでは、breakであれcontinueであれ、forやwhile以外につけるとコンパイルエラーになると書かれています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

言語仕様上そうなっているからです。 continute はループ専用ですが、break はもうちょっと用途が広いという ことみたいですね。 java言語仕様第2版より引用(ちと古いですが最新は英語なので・・・) 14.14 break 文 「ラベル Identifier 付きの break 文は,それを取り囲んでいる, 同じ Identifier をラベルとする,ラベル付き文(14.7)に制御を移そうとする。 この文は break ターゲット(break target)と呼ばれ,直ちに正常完了する。 この場合,break ターゲットは,while,do,for 又は switch 文でなくてもよい。

その他の回答 (2)

回答No.3

No.2 です書き忘れましたが ラベルは任意のステートメントに付けられます。 制限が有るのは continue の方です。

  • OKWavex
  • ベストアンサー率22% (1222/5383)
回答No.1

たんにらべるがせいぎょにつかわれてないからでしょ

関連するQ&A