Todo OK.
Puedes usar ambos whiles. Aunque en este caso, como queremos garantizar que se va a ejecutar al menos una vez, usar "do while" es un poco más correcto.
Por cierto, para hacer saltos de línea, en lugar de hacerlo así:
System.out.println(); System.out.println();
quizás te sea más cómodo hacerlo así:
System.out.println("\n");
\n es un carácter
especial, es decir, no tiene representación gráfica en pantalla si no que conlleva una acción, en este caso, hacer un salto de línea.
Incluso imagina que quisieras dejar una separación de por ejemplo 4 líneas, pues más cómodo usando este carácter y resolverlo en una sola instrucción:
System.out.println("\n\n\n\n");
Aunque sea especial, no deja de ser un carácter, así que puedes combinarlo con otros caracteres "normales" y hacer lo que te salga de la imaginación
System.out.println("\n\nSaliendo del programa....\n\nAdiós");
Saludos.