Ключевое слово «goto» в java не поддерживается. Я где-то где-то читал, что поддерживает в java-байт-коде, и что существует обфускатор, который использовал это для создания нечитаемого кода спагетти. Тем не менее, я не могу найти эту страницу снова, поэтому я задаю этот вопрос здесь: Работает ли ключевое слово goto в скомпилированной форме?goto в java поддерживается?
ответ
да, «Гото» является частью виртуальной машины Java. Многие конструкции зависят от него (например, if/else, while и т. Д.).
Это эквивалент «вызова» на ассемблере.
Но вы правы, он недоступен в исходном коде Java, только в байтовом коде.
Другие языки на jvm могут его реализовать.
Вот страница Jasmin об этом: [? Компиляторы Java или JVM языков, которые поддерживают Гото] https://www.vmth.ucdavis.edu/incoming/Jasmin/ref-_goto.html (опкод является 0xA7)
В списке ключевых слов Java указано ключевое слово goto, но сохраняется с сохранением. Значит, он не используется.
Если вы пытаетесь использовать это покажет вам ошибки
Вероятно, это было сделано в случае, если бы оно было добавлено к более поздней версии Java.
Если goto не был в списке, и он был добавлен позднее на язык, существующий код, который использовал слово goto как идентификатор (имя переменной, имя метода и т. Д.), Сломался. Но поскольку goto является ключевым словом, такой код даже не будет компилироваться в настоящем, и остается возможным сделать это на самом деле позже, без нарушения существующего кода.
проверить это видео .. James gosling tell about goto ... он использовал Гото, когда он разработал Java компилятор
Я знаю это. Но если у вас потенциально был java-компилятор, поддерживающий ключевое слово goto, сможет ли jvm запустить код? Поддерживает ли jvm какой-то goto, даже если компилятор этого не делает? – user2097804
Проверьте мое выделенное предложение – Pragnani
@ user2097804: Java bytecode содержит goto, пример можно найти в моем ответе на этот вопрос: [Pre и post increment в цикле for] (http://stackoverflow.com/questions/15115530/pre -and-post-increment-in-a-for-loop/15115624 # 15115624) – jlordo
- 1. Альтернатива «goto» в Java
- 2. java goto command
- 3. Альтернатива оператору goto в Java
- 4. Java JTable Goto Row Bug
- 5. использование break в виде goto в java
- 6. Ошибка компиляции java в, class (goto)
- 7. GOTO/Продолжить в Java динамического программирования
- 8. goto номер строки строки в Java
- 9. отладка не поддерживается в java
- 10. Неужели Java не поддерживается?
- 11. Компиляторы Java или языки JVM, поддерживающие goto?
- 12. Можно ли всегда исключать goto?
- 13. Ошибка в goto. (C#)
- 14. Реализация goto в ast
- 15. Использование GOTO в массиве
- 16. Goto \ Перейти в Python
- 17. Альтернатива «goto» в PHP
- 18. Инструкция GOTO в Brainf ***
- 19. goto-файл в Emacs
- 20. Команда GOTO в PHP?
- 21. Эквивалент GOTO в python
- 22. Is -javaagent поддерживается java 1.4?
- 23. Unicode версия поддерживается Java 6
- 24. python альтернатива команде goto?
- 25. SHA-512 не поддерживается Java?
- 26. JTable Goto Row
- 27. Android: Как поддерживается Java в Android?
- 28. Является ли это действительным случаем для использования 'goto' в Java
- 29. Есть ли способ выполнить функцию goto в Java?
- 30. GoTo Next Iteration in For Loop в java
возможно дубликат (http://stackoverflow.com/questions/992930/ java-compilers-or-jvm-languages-that-support-goto) – Perception
Нет, обходным путем является использование throw/catch. Это позволяет вам вернуться назад. Чтобы отскочить назад, поместите улов в петлю. – QuentinUK
вы можете использовать break/continue с ярлыками, которые очень похожи на (ограниченный) goto. – jtahlborn