while(true){
try{
age=sc.nextInt();
if(age>0&&age<150){
break;
}
System.out.println("請重新輸入年齡");
//age=sc.nextInt();
}catch(Exception e){
System.out.println("請重新輸入年齡");
**********sc.next(); **********
}
}
這一行為什麼要加sc.next;這句代碼?
age=sc.nextInt()不是已經相當於等待輸入下一個數嗎?
如果你輸入了‘a’之類的非法字符,就會執行catch裡的語句,因為‘a’是非法輸入,不會被age接收,所以要用sc.next();將這個非法輸入從緩沖區清除。