A principal diferença entre este ciclo e o ciclo while... é que as instruções que se encontram dentro do ciclo do... while... são executadas pelo menos uma vez e até que a condição dada deixe de se verificar.
O for... é um ciclo de repetição baseado num contador. Este é utilizado sempre que pretendemos repetir, uma ou mais instruções, um determinado número de vezes, tendo em atenção que sabemos exatamente esse número.
Este ciclo é um ciclo que é utilizado sobre objetos, como por exemplo um array.
É outro ciclo que permite trabalhar de uma forma mais simples com um array. Ao contrário do ciclo for... in... que pega nas chaves/índices (key) do array, o ciclo for... of... pega os valores das chaves.
A estrutura de repetição while... é baseada numa condição. Assim, enquanto a condição se verificar as instruções, dentro da estrutura, vão-se repetindo.