Я написал эту программу из 20 вопросов на Java для назначения с использованием операторов переключения - PullRequest
0 голосов
/ 24 февраля 2019

Я написал эту программу, которая предназначена для воспроизведения варианта из 20 вопросов с около 60 решениями.Я использовал операторы switch для этого и написал это так:

static void Livinganimal() {
    System.out.println("Does it have feathers, fur, or neither?");
            String user = get.nextLine();
    user = user.toLowerCase();
    switch(user){
        case "feathers":
            FeathersQuestions();
            break;
        case "fur":
            Furquestion();
            break;
        case "neither":
            askneither();
            break;
        default:
            wronginput();
    }
}

static void FeathersQuestions() {
    System.out.println("is it bigger than a soccer ball?");
            String user = get.nextLine();
    user = user.toLowerCase();
   switch(user){
        case "yes":
            doesitfly();
            break;
        case "no":
            doesiteatmeat();
            break;
        default:
            wronginput();
    }

}

static void doesitfly() {
    System.out.println("Does it fly?");
           String user = get.nextLine();
    user = user.toLowerCase();
    switch(user){
        case "yes":
            doesithuntprey();
            break;
        case "no":
            doesitswim();
            break;
        default:
            wronginput();
    }
}

static void doesithuntprey() {
    System.out.println("Does it hunt prey?");
            String user = get.nextLine();
    user = user.toLowerCase();
    switch(user){
        case "yes":
            isitosprey();
            break;
        case "no":
            isitcrested();
            break;
        default:
            wronginput();
    }
}

Очевидно, что это намного длиннее, но это сегмент, чтобы дать идею.Я сделал каждый свой метод, чтобы легко вызывать друг друга и не путать его.Теперь мне сказали, что, поскольку мы не рассмотрели использование нескольких методов и тому подобное в классе, я не могу представить его в этой форме, и все должно быть в методе main.В любом случае я могу передать полностью сформированный код в этой текущей структуре и сделать все это одним основным методом?

1 Ответ

0 голосов
/ 24 февраля 2019

К сожалению, ваш подход лучше.Но я думаю, вы могли бы создать цикл while с большим переключателем - для всех 20 вопросов.Теперь, после того как пользователь ответит на ваш вопрос, вместо того, чтобы вызывать методы, вы просто установите некоторую переменную, чтобы указать, какой вопрос вы собираетесь задать дальше.Затем проверьте эту переменную в этом большом операторе switch.Я надеюсь, вы поняли мою идею.

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

Редактировать: Я имею в виду, вы можете копировать-вставлять, но все же вам нужно переписать вызовы методов для установки этой переменной.

Кроме того, сохраните эту версию кода, потому что вы никогда не знаете, возможно, ваш учитель решит, что он хочет, чтобы вывсе, чтобы переписать его с помощью методов, как только вы охватите эту тему в классе.Также обратите внимание, что соглашение в Java является верблюжьим регистром, поэтому вы должны называть методы didItHuntPrey () вместо doithuntprey ().

...