【发布时间】:2014-03-06 08:59:30
【问题描述】:
所以我有一个循环,它围绕着一个循环和一个 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");
}
}
感谢您的帮助!
编辑: 为了强调... 怎么了: 无限循环喷出“phrase2”。 我想要什么: else 执行完后,我想再次被带入内循环。
【问题讨论】:
-
看起来一旦你遇到了“phrase2”的情况,你就永远不会更新任何其他数据,所以当然以前为假的条件仍然如此。您可能希望在
else语句中执行某种重新初始化,以便正确重启。 -
如果你是正确的
<condition that is false>确实总是假的,那么i永远不会从零变化,所以while(i == 0)当然会无限运行。i需要以某种方式改变。 -
可能是条件本身有问题;可以加一下吗?
-
在你的 else 子句中使
true -
看起来你正在遭受意大利面攻击;您是否考虑过可以重组代码以完全避免该问题的方法?
标签: java loops if-statement infinite