Scanner?scanner?=?new?Scanner(System.in);
int?i?=?scanner.nextInt();
System.out.println(i);
int?j?=?scanner.nextInt();
System.out.println(j);這樣是通過一個scanner對象兩次輸入分別給兩個變量賦值,沒有問題,執行后一切正常。Scanner?scanner=new?Scanner(System.in);
while(true){
???try?{
???//Scanner?scanner=new?Scanner(System.in);
???System.out.println("請輸入玩家1的ID:");
???playerOne.id=scanner.nextInt();
???break;
???}?catch?(Exception?e)?{
???System.out.println("你應該輸入一個整數!");
???}
???}這是剛剛寫的一段代碼(沒有標注的那一行),先創建一個scanner對象,然后try里面輸入一個數,如果是整數就賦值給一個對象的參數(必須是int類型),并且break跳出循環;但如果不是整數型就異常處理重新循環。但執行后,輸入整數正常,但輸入一個非整數字符串就會無限循環“你應該輸入一個整數!”這句話。后面我發現,把scanner對象創建在循環里面(就是標注的那一行),就沒有錯誤,請問這是為什么?我之前理解的是scanner對象可以重復使用,為什么這里卻要每次重新創建?
添加回答
舉報
0/150
提交
取消