用户需要按两次输入才能初始化循环

时间:2013-06-10 23:12:22

标签: java do-while

我完成了一个初学者的游戏程序,它运行正常,除非它提示用户再次播放时有点慢。它是一个do ... while循环,围绕整个main方法。我想这样做,以便用户只需输入" 1"并按下输入ONCE而不是两次以重播游戏。

我该如何解决这个问题?另外,我不确定我需要显示哪个程序部分(如果需要),所以如果您需要,请告诉我。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

这是因为readLine()等待行被" \ n"终止。 (在这种情况下输入)。你使用它两次:

pagain = myInput.readLine(); 

然后

loop = myInput.readLine();

Isn&#t; t" pagain"应该是你的"循环"是在做?我认为可以只使用一个变量来控制这两个循环。例如,您要求输入" 1"再次循环同一组并输入" 2"尝试新的一套。然后你可以摆脱"循环"变量。当它检查你输入" 2"时,它会走出内在的行为。