6

そのため、特に二重にネストされたループで、ラベルが for ループで使用されて抜け出すケースをたくさん見てきました。

これは、それらが使用できる唯一のケースですか? または、私が知らない他の一般的な用途があります。使ったことのないJavaツールのような気がします!

4

2 に答える 2

5

ラベル付きの break と continueは、基本的に goto ステートメントです。

https://stackoverflow.com/a/6373262/895245から: 転送先:

label: {
  // do stuff
  if (check) break label;
  // do more stuff
}

後戻り

label: do {
  // do stuff
  if (check) continue label;
  // do more stuff
  break label;
} while(true);

したがって、この質問は、いつ goto ステートメントが正当であるかという終わりのない議論に帰着します。たとえば、 C または C++ での適切な goto の例 に、上記の後方への goto イディオムが直接の GOTO よりもさらに醜いという事実が追加されています。

于 2015-04-06T11:32:11.953 に答える