我正在尝试做一个假信用卡生成器。所以基本上问题是,当用户说“否”时,程序会继续并显示“再见”,但随后又会重新开始并且找不到原因。
我想将所有这些 do/while 循环放入一个 for 循环中,这样我就可以在最后放置一个中断,但这导致了死代码(这是合乎逻辑的)。
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();
}
我原以为它会在用户说“不”时停止,但它又重新开始
最佳答案
根据您添加的图像,您正在调用循环代码两次。一次来自您的构造函数,一次来自您的 main
.
这是您当前的代码:
Generator gen = new Generator();
gen.generateCode();
但是,您的构造函数在 generator
内类包含对相同方法的调用 generateCode()
此处显示:
this.generateCode();
当您使用new Generator()
时这也会运行构造函数内部的代码,因此您将运行相同的代码两次。您可以通过尝试运行该程序两次来确认这一点,第二次后它应该停止执行。
删除this.generateCode()
因为这实际上并不是应该从构造函数运行的代码。
关于java - 这个 do/while 循环无缘无故地重复,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57380973/