java - 在while循环中要求用户在哪里再次玩(猜谜游戏)
问题描述
这是一个从 1-100 生成随机数并提示用户猜数字的游戏。玩完一个游戏后(用户猜对了数字),游戏会提示您再次玩。它应该在每场比赛之后询问,直到用户拒绝。
在我的代码中,第一个完成的游戏会将问题返回给用户,但之后的游戏不会询问,而是自动玩游戏。我在 while 循环中的语句位置是否不正确?
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
playGame(reader);
System.out.println("Do you want to play again? ");
String userInput = reader.next();
int minGuess = 0;
while(userInput.indexOf("y")!=-1 || userInput.indexOf("Y")!=-1) {
guessCount = playGame(reader);
game++;
System.out.println("Do you want to play again?"); //not sure about this placement
}
overallStatistics(game, guessCount, minGuess);
}
解决方案
您应该在每次迭代结束时阅读用户答案:
while(userInput.indexOf("y")!=-1 || userInput.indexOf("Y")!=-1) {
guessCount = playGame(reader);
game++;
System.out.println("Do you want to play again?");
userInput = reader.next(); // read user answer
}
推荐阅读
- django - 我如何在 django 的表单小部件上使用阿拉伯语或法语日期格式
- codeigniter - CodeIgniter Ion Auth 忘记密码重置链接不包含服务器 IP 地址
- python - 将系列转换为诊断数据框,所有其他元素为零
- azure - Azure 订阅标签:如何删除空标签值?
- javascript - 将字体系列与字体名称节点 js 分开
- codenameone - 代号为一的内存数据库
- java - Java的--add-export在jlinking期间没有效果
- java - Spring Boot JacksonTester 自定义序列化程序未注册
- javascript - 比较文章和按钮的数据
- wpf - 使代码在 Sync VB.net 中执行 | WPF