この単純なコードを書いて、double を取得し、double が与えられるまで尋ね続けますが、文字列を与えると無限ループになり、その理由がわかりません。このように動作する理由は何ですか?
Scanner scanner = new Scanner(System.in);
double x = 0.0d;
while (true) {
try {
System.out.println("Gimme a double:");
x = scanner.nextDouble();
break;
} catch (InputMismatchException e) {}
}
System.out.println(x);