gpt4 book ai didi

java - 程序不会等待请求用户输入

转载 作者:行者123 更新时间:2023-12-01 21:40:54 25 4
gpt4 key购买 nike

我遇到的问题是我的程序跳过用户输入提示。相关代码如下:

System.out.format("Purchase price is $" + "%.2f%n", sum);
System.out.println("Proceed to payment? (y/n) ");
String proceed = keyboard.nextLine();

while(!proceed.equals("n") && (!proceed.equals("y"))) {
System.out.println("Invalid response. Try again.");
System.out.println("Proceed to payment? (y/n) ");
proceed = keyboard.nextLine();

if (proceed.equals("n")) {
System.out.println("Come back next time, " + name + ".");
System.exit(0);
}
else if (proceed.equals("y")) {`

输出应暂停于:

购买价格为 $x.00

继续付款吗? (是/否)

而是输出:

购买价格为 $x.00

继续付款吗? (是/否)

响应无效。再试一次。

继续付款吗? (是/否)

有人能告诉我为什么它忽略第一个扫描仪提示吗?

编辑:代码独立工作,问题出在程序内的其他地方。当我弄清楚时,我会报告。

最佳答案

while循环条件中的这个逻辑是错误的

while(!proceed.equals("n") && (!proceed.equals("y"))) {

必须是

while(!proceed.equals("n") || (!proceed.equals("y"))) {
<小时/>

如果您想保留 AND 条件的逻辑,则将付款移出 while 以便可以正常工作

示例:

while (!proceed.equalsIgnoreCase("n") && (!proceed.equalsIgnoreCase("y"))) {
System.out.println("Invalid response. Try again....");
proceed = keyboard.nextLine();
}
if (proceed.equalsIgnoreCase("n")) {
System.out.println("Come back next time, " + name + ".");
System.exit(0);

} else if (proceed.equalsIgnoreCase("y")) {
System.out.println("now we are going to pay, " + name + "." + sum);
System.exit(0);
}

关于java - 程序不会等待请求用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467603/

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