下面的程序只是從控制檯讀取整數並將其打印回來。當輸入一個非int(如char或String)時,Scanner會拋出異常。我試圖處理'try-catch'塊中的異常,並繼續閱讀下一個輸入。在控制檯的第一個非int輸入之後,程序運行到無限循環。有人可以幫忙嗎?Java:爲什麼循環中的try-catch塊只執行一次?
public class ScannerTest {
static int i=1;
static Scanner sc;
public static void main (String args[]){
sc = new Scanner(System.in);
while (i!=0){
System.out.println("Enter something");
go();
}
}
private static void go(){
try{
i = sc.nextInt();
System.out.println(i);
}catch (Exception e){
System.out.println("Wrong input, try again");
}
}
}
除了其他問題,您需要在您的功能中輸入用戶輸入。 – devnull
在try-catch塊中捕獲InputMidmatchException時[Infinite While While Loop]的可能重複(http://stackoverflow.com/questions/6612806/infinite-while-loop-when-inputmidmatchexception-is-caught-in-try-catch -block) – fgb
是的,對不起。 – Siva