在Java中,可以在for
-loop的初始化部分来声明一个变量:是否有可能在Java中声明一个变量而有条件?
for (int i=0; i < 10; i++) {
// do something (with i)
}
但随着while
声明这似乎并不可能。
很多时候我看到这样的代码,当条件while循环需要在每次迭代后进行更新:
List<Object> processables = retrieveProcessableItems(..); // initial fetch
while (processables.size() > 0) {
// process items
processables = retrieveProcessableItems(..); // update
}
这里的计算器,我发现至少a solution防止取的的重复代码可处理物品:
List<Object> processables;
while ((processables = retrieveProcessableItems(..)).size() > 0) {
// process items
}
但是该变量仍然必须在while循环之外声明。
因此,我想保持我的变量作用域是干净的,是否可以在while条件中声明一个变量,或者是否存在其他解决方案?
有一个'do-while'循环在这种情况下听起来像是一个很好的候选人。声明将不得不停留在循环之外,但至少您将只有一个赋值而不是两个赋值。 –
@JaroslawPawlak - 那么,我上面的最后一个'while'例子会有什么不同呢? –
清洁代码。它不会在布尔表达式中隐藏赋值。 –