(此问题中的任何文本均来自选择我的问题的答案之后)
这是为我的问题提供的代码。我希望代码在用户输入“是”或“否”时执行某些任务,因此我需要知道如何在if-else语句中实现用户输入。我还想了解如何将代码循环回用户输入的“是”或“否”以外的任何内容。
import java.util.Scanner;
public class RandomPerkSelector {
public static void main(String [] args){
Scanner userInput = new Scanner(System.in);
System.out.println("Are you playing as a survivor?");
}
}
答案 0 :(得分:1)
首先,您要使用Scanner
从键盘进行读取。您已经中途了:
Scanner userInputReader = new Scanner(System.in);
String userInput = userInputReader.nextLine();
您可以像这样简单地检查userInput
是否等于yes
/ no
:
if(userInput.equals("yes")){ //note strings are compared with .equals, not ==
//"yes" case
}else if(userInput.equals("no")){
//"no" case
}else{
//neither "yes" nor "no"
}
或者,switch语句也可以工作
switch(userInput){
case "yes":
//yes case
break;
case "no":
//no case
break;
default:
//neither "yes" nor "no"
break;
}
如果输入的内容无效,则要求更多输入:
while(true){
String userInput = userInputReader.nextLine();
if(userInput.equals("yes")){ //note strings are compared with .equals, not ==
//"yes" case
//generate your numbers for "yes"
break;
}else if(userInput.equals("no")){
//"no" case
//generate your numbers for "no"
break;
}else{
//neither "yes" nor "no"
//note that the continue statement is redundant and
//the whole else-block can be omitted
continue;
}
}
答案 1 :(得分:0)
如果您希望用户仅输入“是” /“否”并要求他们再次输入直到输入正确,则可以使用do while循环。之后,您可以使用switch语句来控制程序流。像这样
Scanner sc = new Scanner(System.in);
String userInput;
do{
System.out.println("Input : ");
userInput = sc.nextLine();
}while("yes".equalsIgnoreCase(userInput)==false && "no".equalsIgnoreCase(userInput)==false);
switch(userInput){
case "yes":
//do something
break;
case "no":
//do something
break;
default:
//do something
break;
}