我完成了一个初学者的游戏程序,它运行良好,只是在提示用户再次玩时它有点慢。这是一个围绕整个 main 方法的 do...while 循环。我想让它让用户只需要输入“1”并按一次输入,而不是两次就可以重播游戏。
我怎样才能解决这个问题?另外,我不确定我需要展示我的程序的哪一部分(如果需要),所以如果你需要,请告诉我。
这应该有效。
if (correctc == 3 && correctp == 3){
System.out.println("\nUser wins! Colour was " + colchoice);
System.out.println("Press 1 to play again with a new combo.");
pagain = myInput.readLine(); // game starts with new combo or ends
}
// User tries guessing again
else{
System.out.println("\nEnter 1 to guess again.");
loop = myInput.readLine();
}
}while("1".equals(loop)); // user continues guessing the same combo
}while("1".equals(pagain)); // new game with new combo
原因是 readLine() 等待 line 被 "\n" 终止(在这种情况下是输入)。你使用它两次:
pagain = myInput.readLine();
接着
loop = myInput.readLine();
“pagain”不应该做你的“循环”正在做什么吗?我相信可以只使用一个变量来控制这两个循环。例如,您要求输入“1”以再次循环同一组并输入“2”以尝试使用新组。然后你可以摆脱“循环”变量。当它检查您是否输入了“2”时,它将退出内部执行。