Diferença entre mover um Iterator para frente com uma instrução for e uma instrução while

Quando uso um Iterador de Objeto, uso umenquanto loop (conforme escrito em todos os livros que aprendem Java, comoPensando em Java de Bruce Eckel):

Iterator it=...

while(it.hasNext()){
    //...
}

mas em algum momento eu vi do que alguém usar opara laço:

Iterator it=...
for (Iterator it=...; it.hasNext();){
    //...
}

Não entendo essa escolha:

Eu uso opara laço quando eu tenho uma coleção com sequência ordinal (como matriz) ou com uma regra especial para a etapa (declarada geralmente como um incremento simplescounter++)Eu uso oenquanto loop quando o loop termina, não tenho essas restrições, mas apenas uma condição lógica para a saída.

É uma questão de codificação de estilos sem outra causa ou existe alguma outra lógica (desempenho, por exemplo) que eu não conheço?

Obrigado por todos os comentários

questionAnswers(5)

yourAnswerToTheQuestion