gpt4 book ai didi

java - 代码在没有到达第二个用户输入的情况下被终止

转载 作者:行者123 更新时间:2023-12-02 09:42:55 25 4
gpt4 key购买 nike

代码在未接受第二个用户输入的情况下提前终止。

public static void main(String[] args)throws java.io.IOException {
// TODO Auto-generated method stub

char ch;

System.out.println("Press any key to throw a die and press Enter (or Q and Enter to quit)");

ch = (char) System.in.read();
if(ch == 'q'|| ch =='Q')
{
System.exit(0);
}
else
{
dieFace = (int)(Math.random() * max) +1;
System.out.println("You rolled a " + dieFace);
}

char pa;

System.out.println("Play Again? (Y or y) and Enter, any other key and Enter to Quit");

pa = (char) System.in.read();
if(pa == 'Y'|| pa =='y')
{
dieFace = (int)(Math.random() * max) +1;

System.out.println("You rolled a " + dieFace);
}
else
{
System.exit(0);
}

最佳答案

代码不接受第二次用户输入,因为第一次输入后,我们需要输入Enter来结束第一次输入。这就是问题所在,Enter 也是一个输入(ASCII 代码为 10)。

我们需要尝试读取Enter,以便我们可以等待新的输入。只需在第二次输入之前添加对 System.in 的更多读取即可。

System.out.println("Press any key to throw a die and press Enter (or Q and Enter to quit)");

ch = (char) System.in.read();
if(ch == 'q'|| ch =='Q')
{
System.exit(0);
}
else
{
dieFace = (int)(Math.random() * max) +1;
System.out.println("You rolled a " + dieFace);
}

char pa;

System.out.println("Play Again? (Y or y) and Enter, any other key and Enter to Quit");

int enterKey = System.in.read();//this is the enter key char

pa = (char) System.in.read();
if(pa == 'Y'|| pa =='y')
{
dieFace = (int)(Math.random() * max) +1;

System.out.println("You rolled a " + dieFace);
}
else
{
System.exit(0);
}

注意:int EnterKey = System.in.read();//这是回车键字符,用于读取回车。

建议: java.util.Scanner 可能更适合您,请查看 Doc

关于java - 代码在没有到达第二个用户输入的情况下被终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com