【发布时间】:2018-01-15 15:25:40
【问题描述】:
我很难理解我的代码到底出了什么问题。我不是一个优秀的开发人员,我还在学习,所以非常欢迎所有提示! :)
所以我正在做的是有一个 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”语句。
我该如何解决这个问题?提前非常感谢。
【问题讨论】:
-
您需要在循环内处理扫描仪。否则,您不会读取用户写入的下一个字符。
-
你需要使用
userAnswer = userInput.readLine()否则你的答案永远不会改变。
标签: java string loops while-loop user-input