Вопрос-ответ

Is there a goto statement in Java?

Есть ли оператор goto в Java?

Меня это смущает. Большинству из нас говорили, что в Java нет оператора goto.

Но я обнаружил, что это одно из ключевых слов в Java. Где его можно использовать? Если его нельзя использовать, то почему оно было включено в Java в качестве ключевого слова?

Переведено автоматически
Ответ 1

Джеймс Гослинг создал оригинальную JVM с поддержкой goto операторов, но затем удалил эту функцию за ненадобностью. Основная причина, по которой goto в этом нет необходимости, заключается в том, что обычно его можно заменить более удобочитаемыми операторами (например, break/continue) или путем извлечения фрагмента кода в метод.

Источник: Джеймс Гослинг, сессия вопросов и ответов

Ответ 2

В списке ключевых слов Java указывается goto ключевое слово, но оно помечено как "не используется".

Он был в исходной JVM (см. Ответ @VitaliiFedorenko), но затем удален. Вероятно, он был сохранен как зарезервированное ключевое слово на случай, если его нужно было добавить в более позднюю версию Java.

Если goto его не было в списке, и он был добавлен в язык позже, существующий код, который использовал слово goto в качестве идентификатора (имя переменной, название метода и т.д.), сломался бы. Но поскольку goto это ключевое слово, такой код даже не будет компилироваться в настоящее время, и остается возможность заставить его действительно что-то делать позже, не нарушая существующий код.

Ответ 3

Ключевое слово существует, но оно не реализовано.

Единственная веская причина использовать goto, о которой я могу думать, это:

for (int i = 0; i < MAX_I; i++) {
for (int j = 0; j < MAX_J; j++) {
// do stuff
goto outsideloops; // to break out of both loops
}
}
outsideloops:

В Java вы можете сделать это следующим образом:

loops:
for (int i = 0; i < MAX_I; i++) {
for (int j = 0; j < MAX_J; j++) {
// do stuff
break loops;
}
}
Ответ 4

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html


"Ключевые слова const и goto зарезервированы, даже если они в данный момент не используются ".


java