所以我有一个环绕着一个循环和一个if语句。然而,在运行程序时,它会退出内部循环(按计划),然后它会失败if语句(也按计划),使用else语句,这是一个简单的打印。
我/想/将要发生的事情(在if失败的情况下),重新启动到原始内部循环 - 因此外部循环。但相反,在if语句失败后,它开始反复循环“phrase2”。
以下是简化代码:
int x = 1;
int y = 1;
int i = 0;
while(i == 0)
{
while(<condition that is false>)
{
System.out.println("phrase1");
a = input.nextInt();
b = input.nextInt();
}
if(<condition that is false>)
{
i = 1;
}
else
{
System.out.println("phrase2");
}
}
感谢您的帮助,无论如何!
编辑: 为了强调...... 怎么了: 无限循环喷出“短语2”。 我想要的: 在执行else之后,我想再次进入内循环。
答案 0 :(得分:0)
您的控件永远不会输入以下if语句
if(<condition that is false>)
{
i = 1;
}
您可能需要调整条件,使其进入上述if块。在if语句中引入System.out.println以进行调试
答案 1 :(得分:0)
无论你在内循环中使用什么条件,只要确保它是真的。
else
{
System.out.println("phrase2");
// SET THIS TO TRUE: <condition that is false>
}
这样,内循环将再次触发。
答案 2 :(得分:0)
看起来你有一些你可能想要运行的代码,除非出现问题,然后你想回去重试。我通常使用的成语看起来像
boolean needToRetry;
do {
needToRetry = false;
// do whatever
if (somethingWentWrong) {
needToRetry = true;
// set this at any point where you find you will need to go back
}
} while (needToRetry);
重要的是你需要在每次循环开始时重置你的标志(needToRetry
)。 (P.S.使用break
或continue
还有其他方法可以做到这一点,尽管我个人不喜欢使用continue
。)