【发布时间】:2015-11-16 05:52:28
【问题描述】:
这基本上就是我正在做的事情
while(true) //cant check for zero, there is more to do here
{
int val = 0;
for(SomeObject i : arrayListOfSomeObjects)
{
if(canDoSomething)
{
val++
}
}
if(val == 0)
{
break;
}
else
{
//do stuff with that nonzero value
}
}
这很奇怪,因为循环不会产生。如中,如果不成功就停止。我有一个过程会一直持续到它完成,如果它不做任何事情(或不符合我在该操作中的条件)它不会改变值。这意味着对“val”的检查应该打破循环。但事实并非如此。它只是去。我什至在控制台上打印了“val”,但它返回 0。
在该操作结束时,即使值为 0,它也会继续运行!
【问题讨论】:
-
你用调试器测试过吗?
-
是的,正如我所提到的,“val”正在吐出 0。
-
那么上面的代码是停止还是循环?
-
上面的代码完全可以停止,所以我认为它在这个循环之外。尝试在 if 语句中放入 println 并检查以确保它已运行。以及 while 循环之前的第二个 println,以确保它在 while 循环已经退出后不会重新运行。
-
不是真正的代码,因为缺少分号,至少。为什么不发布导致实际问题的实际代码?
标签: java loops while-loop break