Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个do/while循环无缘无故重复,如何修复它?_Java_Loops_Error Handling_While Loop_Do While - Fatal编程技术网

Java 这个do/while循环无缘无故重复,如何修复它?

Java 这个do/while循环无缘无故重复,如何修复它?,java,loops,error-handling,while-loop,do-while,Java,Loops,Error Handling,While Loop,Do While,我试图做一个虚假的信用卡生成器。所以,基本上问题是,当用户说“不”时,程序会继续运行并显示“再见”,但随后又重新启动,并且找不到原因 我曾想过将所有这些do/while循环放在for循环中,这样我就可以在最后加上一个中断,但这会导致死代码(这是合乎逻辑的) 我希望当用户说“不”时它会停止,但它会重新开始根据您添加的图像,您正在调用循环代码两次。一次来自构造函数,一次来自main 这是您当前的代码: Generator gen = new Generator(); gen.generateCode

我试图做一个虚假的信用卡生成器。所以,基本上问题是,当用户说“不”时,程序会继续运行并显示“再见”,但随后又重新启动,并且找不到原因

我曾想过将所有这些do/while循环放在for循环中,这样我就可以在最后加上一个中断,但这会导致死代码(这是合乎逻辑的)


我希望当用户说“不”时它会停止,但它会重新开始

根据您添加的图像,您正在调用循环代码两次。一次来自构造函数,一次来自
main

这是您当前的代码:

Generator gen = new Generator();
gen.generateCode();
但是,
generator
类中的构造函数包含对相同方法
generateCode()
的调用,如下所示:

this.generateCode();
当您使用
new Generator()
时,这也会运行构造函数内部的代码,因此您将运行相同的代码两次。您可以通过两次尝试运行程序来确认这一点,第二次运行后程序应该停止执行


删除
this.generateCode()
,因为这不是应该从构造函数运行的真正代码。

根据您添加的图像,您将调用循环代码两次。一次来自构造函数,一次来自
main

这是您当前的代码:

Generator gen = new Generator();
gen.generateCode();
但是,
generator
类中的构造函数包含对相同方法
generateCode()
的调用,如下所示:

this.generateCode();
当您使用
new Generator()
时,这也会运行构造函数内部的代码,因此您将运行相同的代码两次。您可以通过两次尝试运行程序来确认这一点,第二次运行后程序应该停止执行


删除
this.generateCode()
,因为这不是应该从构造函数中运行的真正代码。

他的意思是缺陷可能不在generateCode方法中,而是在调用它的方式中。如果该方法到达打印“再见”的位置,那么问题就在别处,无论是在直接调用方中,还是在调用堆栈的下游某处。顺便说一句,在原始代码中,如果键入“N”,它确实会正确终止。但是,如果您键入“n”、“no”、“no”或其他类似的变体,则无法运行。您是否介意添加用于调用“generator.generateCode();”的其余代码?它可以帮助排除故障。由于您是编程新手,调试是您的朋友:)问题不在于您错误地调用了该方法。这是因为您正在重复调用它。他的意思是,缺陷可能不在generateCode方法中,而是在调用它的方式中。如果该方法到达打印“再见”的位置,那么问题就出在其他地方,无论是在直接调用方还是在调用堆栈的下一个地方。顺便说一句,在原始代码中,如果您键入“N”,它确实会正确终止。但是,如果您键入“n”、“no”、“no”或其他类似的变体,则无法运行。您是否介意添加用于调用“generator.generateCode();”的其余代码?它可以帮助排除故障。由于您是编程新手,调试是您的朋友:)问题不在于您错误地调用了该方法。这是因为您正在反复调用它。