在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'例子會有什麼不同呢? –
清潔代碼。它不會在布爾表達式中隱藏賦值。 –