In Java it is possible to declare a variable in the initialization part of a for
-loop:
for ( int i=0; i < 10; i++) {
// do something (with i)
}
But with the while
statement this seems not to be possible.
Quite often I see code like this, when the conditional for the while loop needs to be updated after every iteration:
List<Object> processables = retrieveProcessableItems(..); // initial fetch
while (processables.size() > 0) {
// process items
processables = retrieveProcessableItems(..); // update
}
Here on stackoverflow I found at least a solution to prevent the duplicate code of fetching the processable items:
List<Object> processables;
while ((processables = retrieveProcessableItems(..)).size() > 0) {
// process items
}
But the variable still has to be declared outside the while-loop.
So, as I want to keep my variable scopes clean, is it possible to declare a variable within the while conditional, or is there some other solution for such cases?
do-while
loop which sounds like a good candidate in this case. The declaration will have to stay outside of the loop, but at least you will have only one assignment instead of two. – Hearshwhile
example above? – Bloodred