Единственное отличие между оператором for
и оператором while
или do-while
состоит в том, что for
также определяет инициализацию и приращение итератора.
Например, давайте возьмемIterator
, который в Java можно использовать для перебора векторов или чего-либо подобного (например, связанный список):
//we already have a variable v whom type implements List interface;
for (Iterator vectorIterator = v.iterator(); vectorIterator.hasNext(); ) {
//I left blank after the last ";" because there should come
// the increment statement, and I need to store the .next() return value.
int current = vectorIterator.next();
}
А вот версия while
:
Iterator vectorIterator = v.iterator();
while (vectorIterator.hasNext()) {
int current = vectorIterator.next();
}
do-while
очень похож на while
версию.
Я дал вам этот более сложный пример, чтобы показать вам, что все, что вы делаете с while
, независимо от того, насколько сложным, вы можете делать с for
.
РЕДАКТИРОВАТЬ: оператор do-while
существует в качестве альтернативы while
, с той лишь разницей, что условие цикла проверяется на итерации.Таким образом, вы можете сделать эквивалент для приведенного выше примера, используя do-while
, например:
Iterator vectorIterator = v.iterator();
if (vectorIterator.hasNext()) {
do {
int current = vectorIterator.next();
} while (vectorIterator.hasNext());
}
, но в этом нет никакой цели.Вы должны использовать каждый инструмент для своих целей.