From the Javadoc:
When a scanner throws an InputMismatchException, the scanner will not pass the token that caused the exception, so that it may be retrieved or skipped via some other method.
So the "df"
string is still in the Scanner. You have to clear it somehow, by calling next()
or some other means.