скрытый случай, пока параметры не будут выполнены - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь написать модель погодных условий.У меня проблемы с коммутатором / чехлом.Я хочу, чтобы в одном из моих дел не было доступной переменной два заполняется пользователем.Как бы я это сделал?Вот код клипа

 switch (choice) {
            case 0:
                System.out.println("Exit");
                break;
            case 1:

                int yInch = in.nextInt();
                yester = CondYest(yInch);

                break;
            case 2:
                System.out.println("Enter/Update Today's Weather Prediction");
                int tInch = in.nextInt();
                today = CondToday(tInch);
                break;
            case 3:
                System.out.println();
                System.out.println("Display Snow Prediction");
                System.out.println("Today's Snow Fall is " + today + " inches!");
                System.out.println("Yesterday's Snow Fall was " + yester + " inches!");
                System.out.println();
                break;
            default:
                System.out.println("Please Try again");
                break;
        }
    } while (choice != 0);

1 Ответ

0 голосов
/ 27 января 2019

Ответ «начального уровня»: иметь несколько операторов переключения.

Другими словами: компонент «контроллер» понимает, какие существуют различные «меню» и какие предварительные условия необходимо выполнить, чтобы принять это решение.

Чтобы превратить его в реальное решение, вы, вероятно, захотите использовать здесь полиморфизм.Например: наличие базового класса, обеспечивающего, скажем, метод showMenu(), который отображает варианты выбора и запрашивает необходимый ввод.Этот класс также имеет (абстрактные) методы для различного поведения.

И затем вы добавляете несколько дочерних классов, которые @Override эти базовые методы по мере необходимости.

Наконец, ваш контроллер затем "только" должен определить, какой класс создать для экземпляра, чтобы показать действительные на данный момент выборы.

...