基本上,我试图让它为您提供键入Rock,Paper或Scissors的选项,但是例如要获取Paper,我需要先键入rock,然后它将读取代码行以获取纸张如果有道理,
public static String decideString() {
Scanner userInput = new Scanner(System.in);
if (userInput.nextLine().contentEquals("Rock")) {
System.out.println("You have chosen rock");
} else if (userInput.nextLine().contentEquals("Paper")) {
System.out.println("You have chosen paper");
} else if (userInput.nextLine().contentEquals("Scissors")) {
System.out.println("You have chosen scissors");
}
答案 0 :(得分:3)
尝试下面的代码。
public static String decideString() {
Scanner userInput = new Scanner(System.in);
String in = userInput.nextLine();
if (in.contentEquals("Rock")) {
System.out.println("You have chosen rock");
} else if (in.contentEquals("Paper")) {
System.out.println("You have chosen paper");
} else if (in.contentEquals("Scissors")) {
System.out.println("You have chosen scissors");
}
答案 1 :(得分:0)
由于在每个if语句中使用了'.nextLine()'方法,因此它将在每次检查条件时使当前行前进。如果我正确地理解了您,则您希望用户仅输入一个输入,逻辑将打印他们选择的内容。在这种情况下,以下代码可能会对您有所帮助。
最佳实践是只使用一次Scanner对象(scobj)并将其存储在变量(userInput)中,以后可以在if语句中与变量进行比较。
Scanner scobj = new Scanner(System.in);
String userInput = scobj.nextLine();
if (userInput.contentEquals("Rock")) {
System.out.println("You have chosen rock");
} else if (userInput.contentEquals("Paper")) {
System.out.println("You have chosen paper");
} else if (userInput.contentEquals("Scissors")) {
System.out.println("You have chosen scissors");
}