我如何在if-else语句中使用用户输入,如果用户输入不是所要求的内容,如何循环代码?

时间:2018-11-30 17:33:29

标签: java string loops if-statement

(此问题中的任何文本均来自选择我的问题的答案之后)

这是为我的问题提供的代码。我希望代码在用户输入“是”或“否”时执行某些任务,因此我需要知道如何在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?");
   }
}

2 个答案:

答案 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;

    }