gpt4 book ai didi

java - 无法将 : receive user input "yes" or "y", boolean 值翻转为 true

转载 作者:行者123 更新时间:2023-12-02 05:31:07 32 4
gpt4 key购买 nike

出于某种原因,我觉得这段代码应该很简单,但每次我输入“y”或"is"时,它都会重复“您愿意...”消息。感谢您的帮助!

编辑:由@Keir-Simmons 回答。 rLoop() 方法很好; roundNum 被错误地重新分配,导致方法之前的 for 循环被完全跳过。使用正确的代码进行编辑。

public static void main(String[] args) {

int roundNum = numOfRounds();

boolean repeat = true;

while (repeat) {
for (int i = 0; i < roundNum; i++){
//other printing code
}

repeat = rLoop();
//roundNum = 0; //wrong
roundNum = numOfRounds(); //right
}

if (!repeat) {
gameSummary(wallet, wagered, totalWinnings);
}

}

private static boolean rLoop() {

String input;
boolean repeat = false;

Scanner keyboard = new Scanner(System.in);

System.out.println("Would you like to play again?");
System.out.printf("Either [Y]es or any other key to exit.");
input = keyboard.nextLine();

if (input.equalsIgnoreCase("y") || input.equalsIgnoreCase("yes"))
repeat = true;
else
repeat = false;

return repeat;
}

最佳答案

编辑:现在您已经更改了代码,我将重写我的答案。你所拥有的效果很好。尝试以下代码,您将看到:

public static void main(String[] args) {

boolean repeat = true;

while (repeat) {
/* print game results here */
System.out.println("results: here!");
repeat = rLoop();
}
}




private static boolean rLoop() {

String input;
boolean repeat = false;

Scanner keyboard = new Scanner(System.in);

System.out.println("Would you like to play again?");
System.out.printf("Either [Y]es or any other key to exit.");
input = keyboard.nextLine();

if (input.equalsIgnoreCase("y") || input.equalsIgnoreCase("yes"))
repeat = true;
else
repeat = false;

return repeat;
}

它将打印“结果:此处”,并重复打印,直到您键入除 yyes 以外的任何内容来回答问题。我不太确定问题是什么。

循环后不需要检查 if(!repeat)。仅当 repeat = false 时循环才会退出,在这种情况下,if 语句的计算结果将始终为 true。我可以查看您的 gameSummary 代码吗?

关于java - 无法将 : receive user input "yes" or "y", boolean 值翻转为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533622/

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