【发布时间】:2019-08-06 17:08:37
【问题描述】:
我正在尝试做一个虚假的信用卡生成器。所以基本上问题是,当用户说“不”时,程序会继续并显示“再见”,但它会重新开始,找不到原因。
我想把所有这些 do/while 循环放在一个 for 循环中,这样我就可以在最后放一个 break,但它导致了一个死代码(这是合乎逻辑的)。
public void generateCode() {
char userAnswer;
Scanner sc = new Scanner(System.in);
do {
System.out.println("Put a bin.");
String binGiven = sc.nextLine();
verificationBin();
showCardNumber();
do {
System.out.println("Do u wanna try again ? (Yes/No)");
userAnswer = sc.nextLine().charAt(0);
} while (userAnswer != 'Y' && userAnswer != 'N');
} while (userAnswer == 'Y');
System.out.println("Goodbye");
sc.close();
}
我希望当用户说不时它会停止,但它会重新开始
【问题讨论】:
-
他的意思是这个缺陷可能不在 generateCode 方法上,而是在它被调用的方式上。
-
如果方法到达打印“再见”的位置,那么问题就出在其他地方,要么在直接调用者中,要么在调用堆栈的更下方。
-
顺便说一句,在原始代码中,如果您输入“N”,它确实会正确终止。但是,如果您输入“n”、“no”、“No”或其他类似的变体,则它不起作用。
-
您介意添加用于调用“generator.generateCode();”的其余代码吗? ?它可以帮助故障排除。由于您是编程新手,因此调试是您的朋友:)
-
问题不在于您错误地调用了该方法。那是您反复调用它。
标签: java loops error-handling while-loop do-while