我写了这个程序,打算用大约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();
}
}
显然它比这长得多,但这是一个提出想法的部分。我做了各自自己的方法,轻松地互相打电话,不要混淆。我现在被告知,因为我们没有涵盖使用多种方法,所以在课堂上我不能以这种形式提交它,并且一切都必须在主方法中。无论如何,我可以在这个当前的化妆中转移一个完全形成的代码,并在一个主要方法下完成所有这些吗?
这很不幸,因为你的方法更好。但我想你可以用大开关创建while循环 - 所有20个问题。现在,在用户回答您的问题后,您只需设置一些变量来表示您接下来要问的问题,而不是调用方法。然后在那个大的switch语句中检查这个变量。我希望你明白我的想法。
但是,如果你问你是否可以简单地将它复制粘贴到main方法中,那么我认为不,你可能需要做一些重写。
编辑:我的意思是,您可以复制粘贴,但仍然需要重写方法调用来设置该变量。
此外,保存此版本的代码,因为你永远不会知道,也许你的老师会决定他希望你们所有人都使用方法重写它,一旦你在课堂上覆盖了这个主题。另请注意,java中的约定是驼峰式的,因此您应该将方法命名为doesItHuntPrey()而不是doithuntprey()。