在我遇到问题之前,我有几个nextLine声明。
System.out.println("Welcome to the game of BlackJack!");
System.out.println("Would you like to play? (Y/N)");
play = in.nextLine();
gameResponse = false;
while (gameResponse == false)
{
//if satements, no nextLine under them
else
{
System.out.println("Invaild response. Enter Y for yes or N for no.");
play = in.nextLine();
}
几行后,我有这行代码:
hitResponse = false;
while (hitResponse == false)
{
System.out.println("Would you like to take a hit(H) or stand(S)?");
String hitStand = in.nextLine();
控制台打印出来:
你想击中(H)还是站立(S)?
Invaild回复,请输入'h'或's'
你想击中(H)还是站立(S)?
任何帮助都是适当的:)
答案 0 :(得分:0)
使用一个额外的in.nextLine()
消费"\n"
答案 1 :(得分:0)
似乎执行在输入缓冲区中使用换行符击中了支持输入代码,可能只是换行符。
最简单的方法是使用Scanner#next()
将所有输入作为字符串读取,这将自动处理(并使用)换行符。
使用各种输入敏感的扫描仪方法(例如nextInt()
)来读取人类输入是一个坏主意;只导致脆弱和冗长的代码。