Помогите Что делать без оператора goto?

detamusi18429

Участник
Пользователь
Баллы
36
Имя в Minecraft
detamusi18429
Как прыгать между частями, кода когда есть такая необходимость?
 
Использовать методы с return'ами в них, а в циклах break и continue.
Но вообще, это не форум по Java )
 
Ну, есть if - else, switch, тернарный оператор. Выбирай.
Делаю менюшку в чате (не спрашивайте зачем👎)
Код:
switch(type) {
   case 1:
       main_menu:
       //to do
       break;
   case 2:
       sendmessage();
       GOTO main_menu;
       break;
   case 3:
       ...
       break;
   default:
       ...
       break;
}
Как в таком случае перепрыгнуть с case 2 в case 1
 
Делаю менюшку в чате (не спрашивайте зачем👎)
Код:
switch(type) {
   case 1:
       main_menu:
       //to do
       break;
   case 2:
       sendmessage();
       GOTO main_menu;
       break;
   case 3:
       ...
       break;
   default:
       ...
       break;
}
Как в таком случае перепрыгнуть с case 2 в case 1
switch(1);
 
Делаю менюшку в чате (не спрашивайте зачем👎)
Код:
switch(type) {
   case 1:
       main_menu:
       //to do
       break;
   case 2:
       sendmessage();
       GOTO main_menu;
       break;
   case 3:
       ...
       break;
   default:
       ...
       break;
}
Как в таком случае перепрыгнуть с case 2 в case 1
На мой взгляд, лучше вынести код в отдельный метод.. Или сделать обычный falling through:

PHP:
switch(type) {
   case 2:
       sendMessage();
       // falling through
   case 1:
       // code...
       break;
   case 3:
       // code...
       break;

   default:
       // code...
       break;
}
 
Делаю менюшку в чате (не спрашивайте зачем👎)
Код:
switch(type) {
   case 1:
       main_menu:
       //to do
       break;
   case 2:
       sendmessage();
       GOTO main_menu;
       break;
   case 3:
       ...
       break;
   default:
       ...
       break;
}
Как в таком случае перепрыгнуть с case 2 в case 1
Ну так не надо для такого использовать switch)
 
В Java нет GOTO оператора, есть только continue, который можно использовать только в циклах. Переноси код в методы или используй switch без break выражений. Это ООП, не процедурка 😁 Создавай свои события и обрабатывай их. Мол, если команда такая-то, то передам-ка я её данные в другой класс-обработчик
 
какие твои предложения?
Ну в зависимости от того, что ты конкретно хочешь сделать, зачем тебе перебирать какой-то магический целочисленный type. Лучше всего использовать гибкие билдеры.
upload_2019-1-31_17-13-44.png
 
Ты велосипед придумал там, где он не нужен
Бред) у тебя наверное на спиготе из коробки в textcomponent api листенеры кликов с консумерами?)
Спиготовский компонент апи не удобный, свой билдер намного гибче и легче в использовании.
 
Последнее редактирование:
Назад
Верх