我的某个用户输入的错误检查方法不起作用

时间:2018-01-27 16:32:31

标签: java error-handling logic java.util.scanner

这里有一个方法可以检查用户是否输入了“y”,与答案是肯定的;或者与答案号有关的“n”。它正确地读入用户输入的字母,但是它一直说用户没有输入“y”或“n”。如果有人能让我知道我做错了什么就会很棒。这是我正在使用的代码:

String answer = "";
do {
 while (answer.equals("")) {
  answer = sc.nextLine();
 }
 if (!answer.equals("y") || !answer.equals("n")) {
  System.out.println("Please enter a y, meaning yes; or an n, meaning no.");
  answer = "";
 }
} while (!answer.equals("y") || !answer.equals("n"));

1 个答案:

答案 0 :(得分:0)

答案非常简单,将||更改为&&。这是因为每个输入都不等于ny

更正后的代码应如下所示:

String answer = "";
Scanner sc = new Scanner(System.in);    
do {
    while(answer.equals("")) {
        answer = sc.nextLine();
    }
    if(!answer.equals("y") && !answer.equals("n")) {
        System.out.println("Please enter a y, meaning yes; or an n, meaning no.");
        answer = "";
    }
}while (!answer.equals("y") && !answer.equals("n"));