我正在寫一個簡單的java控制檯遊戲。我使用掃描儀從控制檯讀取輸入。我試圖驗證它是否需要一個整數,如果輸入了一個字母,我不會收到錯誤。我試過這個:嘗試catch塊導致無限循環?
boolean validResponce = false;
int choice = 0;
while (!validResponce)
{
try
{
choice = stdin.nextInt();
validResponce = true;
}
catch (java.util.InputMismatchException ex)
{
System.out.println("I did not understand what you said. Try again: ");
}
}
但它似乎創建了一個無限循環,只是打印出catch塊。我究竟做錯了什麼。
是的,我是新來的Java
輝煌共同話題!所以我可以擺脫所有的一起嘗試趕上! –
@ Adam8797同樣,當你在InputStream中找到一些不是整數的東西時,你可以用'nextLine()'清除它,因爲'hasNextInt()'也不會丟棄輸入,它只是測試輸入中的下一個標記流。 –
謝謝,這是一個很好的提示。 –