Da Wikipedia:

Per quanto riguarda il costrutto while, esso specifica soltanto la condizione di iterazione, lasciando le due altre operazioni al codice. Esiste una variante, la do... while. Esaminiamone la sintassi:

while (condizione) {
[istruzioni]
}

while (condizione) istruzione;

do {
[istruzioni]
} while (condizione);

do [istruzione] while (condizione);

La differenza tra i costrutti è tanto semplice quanto sostanziale:

While verifica la condizione: se è vera esegue il ciclo finché la condizione non diventerà falsa

Do... While esegue la prima iterazione, e poi si comporta come il precedente
P.S. Pero' questo non c'entra con l'Anno bisestile ... dovevi aprire un altro thread ...