我想在满足条件(else)时从某个点重新运行此方法,我知道我需要为它创建一个新的类/方法,但不知道如何因为我的所有变量都保留在main方法中。
import java.util.*;
public class OddsAndEvens {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Let's play a game called Odds And Evens");
System.out.println();
System.out.println("What is your name? ");
//user name
String name = input.nextLine();
System.out.println("Hi " + name + "Which do you choose? Odds or Evens ?");
//user preference this is where I want to rerun the method from in else condition
String pref = input.nextLine();
if (pref.equals("Odds") || pref.equals("odds")) {
System.out.println(name + " has picked odds ! Computer will be evens");
} else if(pref.equals("Evens") || pref.equals("evens")) {
System.out.println(name + " has picked evens! Computer will be odds");
} else {
System.out.println("please enter a valid answer");
}
}
}
答案 0 :(得分:1)
你不需要新课。您可以复制代码并将其放入如下的新方法中:
private static void playOddsAndEvens() {
//here comes your code that was written in the main method.
}
你的课程看起来像这样:
public class OddsAndEvens {
public static void main(String[] args) {
playOddsOrEvens();
}
private static void playOddsAndEvens() {
//here comes your code that was written in the main method.
}
}
如果要在另一个类中使用此方法,可以将方法playOddsAndEvens()设为public而不是private。
从那时起,您可以根据需要随时随地调用您的方法。
答案 1 :(得分:1)
有很多方法可以做到这一点,一种方法就是按照Valentin所说的那样做,然后创建一个你能记得的方法。 您也可以使用while循环继续询问"赔率"或" evens"直到用户输入两者中的一个。 有点像:
String pref = "";
while(!pref.equalsIgnoreCase("odds") && !pref.equalsIgnoreCase("evens")) {
pref = input.nextLine();
if (pref.equals("Odds") || pref.equals("odds")) {
System.out.println(name + " has picked odds ! Computer will be evens");
} else if (pref.equals("Evens") || pref.equals("evens")) {
System.out.println(name + " has picked evens! Computer will be odds");
} else {
System.out.println("please enter a valid answer");
}
}
您可以通过任何方式缩短代码并使其更清晰,但您应该掌握主要想法。
答案 2 :(得分:1)
这里有很好的答案,但另一种方法是将separate所有必要的功能分别用于单独的方法:
1)调用getUserInput()
方法
2)使用用户输入
调用checkOption()
方法
3a)如果输入等于您的选项,请打印您想要的结果
3b)如果不相等,请再次调用getUserInput()
方法
这就是:
public static void main(String[] args) {
getUserInput();
}
static void getUserInput() {
System.out.println("enter odds or evens");
String pref = input.nextLine();
checkOption(pref);
}
static void checkOption(String option) {
if (option.equalsIgnoreCase("odds") || option.equalsIgnoreCase("evens")) {
result(option);
} else {
getUserInput();
}
}
static void result(String s) {
System.out.println("You chose " + s);
}