我很难理解我的代码到底有什么问题。我不是一个好的开发人员,我仍在学习,因此非常欢迎所有提示! :)

因此,我正在做的是有一个while循环,检查用户是否已向Scanner发出特定字母。如果有,则循环结束。如果没有,它将继续询问该问题。

我的代码如下:

Scanner userInput = new Scanner(System.in);
String userAnswer = userInput.nextLine();
boolean isTrue = true;

     while (isTrue){
         if (userAnswer.equals("e")){
             System.out.println("Wrong, try again");
             userInput.nextLine();
         } else if (userAnswer.equals("k")) {
             System.out.println("That's right!");
             isTrue = false;
             break;
         }
     }


可以,有点。如果用户给出答案“ k”作为第一个答案,则打印出“是的!”然后打破循环。如果用户给出答案“ e”作为第一个答案,它会打印出“错误,请重试”并给出新的行以再次回答,但是如果您随后输入正确的字母“ k”,它仍会打印出“错误,请重试”循环,不会跳转到“ else if”语句。

我该如何解决这个问题?非常感谢。

最佳答案

您必须重新分配值:

while (isTrue){
     if (userAnswer.equals("e")){
         System.out.println("Wrong, try again");
         userAnswer  = userInput.nextLine();
     } else if (userAnswer.equals("k")) {
         System.out.println("That's right!");
         isTrue = false;
     }
 }

09-28 08:28