como verificar a validade do tipo de dados da entrada do usuário (classe Java Scanner)

Eu estou tentando fazer uma interface do usuário simples que pede aos usuários para inserir números de tipo duplo, se a entrada deles não é do tipo duplo, o programa deve continuar imprimindo o prompt até que o usuário insira um tipo duplo válido. Meu código abaixo não está funcionando ainda, porque quando um usuário digita um tipo duplo válido, o programa não faz nada a menos que o usuário digite outro número de tipo duplo. Eu acho que a condição (sc.hasNextDouble ()) no loop while consome a primeira entrada válida. Como corrigir isso? Muito obrigado

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?

questionAnswers(5)

yourAnswerToTheQuestion