我用Java编写了这个20个问题的程序,用于使用switch语句进行赋值

问题描述 投票:0回答:1

我写了这个程序,打算用大约60个决定来演奏20个问题的变体。我使用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();
    }
}

显然它比这长得多,但这是一个提出想法的部分。我做了各自自己的方法,轻松地互相打电话,不要混淆。我现在被告知,因为我们没有涵盖使用多种方法,所以在课堂上我不能以这种形式提交它,并且一切都必须在主方法中。无论如何,我可以在这个当前的化妆中转移一个完全形成的代码,并在一个主要方法下完成所有这些吗?

java methods switch-statement
1个回答
0
投票

这很不幸,因为你的方法更好。但我想你可以用大开关创建while循环 - 所有20个问题。现在,在用户回答您的问题后,您只需设置一些变量来表示您接下来要问的问题,而不是调用方法。然后在那个大的switch语句中检查这个变量。我希望你明白我的想法。

但是,如果你问你是否可以简单地将它复制粘贴到main方法中,那么我认为不,你可能需要做一些重写。

编辑:我的意思是,您可以复制粘贴,但仍然需要重写方法调用来设置该变量。

此外,保存此版本的代码,因为你永远不会知道,也许你的老师会决定他希望你们所有人都使用方法重写它,一旦你在课堂上覆盖了这个主题。另请注意,java中的约定是驼峰式的,因此您应该将方法命名为doesItHuntPrey()而不是doithuntprey()。

© www.soinside.com 2019 - 2024. All rights reserved.