Меня это смущает. Большинству из нас говорили, что в Java нет оператора goto.
Но я обнаружил, что это одно из ключевых слов в Java. Где его можно использовать? Если его нельзя использовать, то почему оно было включено в Java в качестве ключевого слова?
Переведено автоматически
Ответ 1
Джеймс Гослинг создал оригинальную JVM с поддержкой goto операторов, но затем удалил эту функцию за ненадобностью. Основная причина, по которой goto в этом нет необходимости, заключается в том, что обычно его можно заменить более удобочитаемыми операторами (например, break/continue) или путем извлечения фрагмента кода в метод.
Он был в исходной JVM (см. Ответ @VitaliiFedorenko), но затем удален. Вероятно, он был сохранен как зарезервированное ключевое слово на случай, если его нужно было добавить в более позднюю версию Java.
Если goto его не было в списке, и он был добавлен в язык позже, существующий код, который использовал слово goto в качестве идентификатора (имя переменной, название метода и т.д.), сломался бы. Но поскольку goto это ключевое слово, такой код даже не будет компилироваться в настоящее время, и остается возможность заставить его действительно что-то делать позже, не нарушая существующий код.
Ответ 3
Ключевое слово существует, но оно не реализовано.
Единственная веская причина использовать goto, о которой я могу думать, это:
for (inti=0; i < MAX_I; i++) { for (intj=0; j < MAX_J; j++) { // do stuff goto outsideloops; // to break out of both loops } } outsideloops:
В Java вы можете сделать это следующим образом:
loops: for (inti=0; i < MAX_I; i++) { for (intj=0; j < MAX_J; j++) { // do stuff break loops; } }