我很难理解我的代码到底有什么问题。我不是一个好的开发人员,我仍在学习,因此非常欢迎所有提示! :)
因此,我正在做的是有一个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;
}
}