cómo verificar la validez del tipo de datos de la entrada del usuario (clase Java Scanner)

Estoy tratando de crear una IU simple que solicite a los usuarios que ingresen números de tipo doble, si la entrada de ellos no es de tipo doble, el programa debería seguir imprimiendo el mensaje hasta que el usuario ingrese un tipo de doble válido. Mi código a continuación aún no funciona del todo, porque cuando un usuario escribe un tipo doble válido, el programa no hace nada a menos que el usuario escriba otro número de tipo doble. Supongo que la condición (sc.hasNextDouble ()) en el bucle while consume la primera entrada válida. ¿Cómo corregir esto? muchas gracias

Scanner sc = new Scanner(System.in);

System.out.println("Type a double-type number:");
while (!sc.hasNextDouble())
{
    System.out.println("Invalid input\n Type the double-type number:");
    sc.next();
}
userInput = sc.nextDouble();    // need to check the data type?

Respuestas a la pregunta(5)

Su respuesta a la pregunta