我一直在學習JAVA和我有一個小小的疑問代碼:爲什麼Scanner#nextInt for循環內部保持拋出異常?
class apple {
public static void main(String[] args) {
int[] num = new int[3];
Scanner input = new Scanner(System.in);
for (int i = 0; i < num.length; i++) {
try {
num[i] = input.nextInt();
} catch (Exception e) {
System.out
.println("Invalid number..assigning default value 20");
num[i] = 20;
}
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}
我已經寫了個小程序來處理異常,如果用戶輸入不是詮釋拋出一個異常,並指定默認值。 如果我把掃描儀語句放在for循環中,它可以正常工作,但是如果我把它放在它的外部,那麼就會拋出異常的相同值,即我輸入char而不是int。 但是,如果我輸入所有整數它分配正確的值在數組中。
Scanner input = new Scanner(System.in);
我希望你們能理解我的問題。
這是你的意思,但它仍然發揚相同的值,並拋出一個異常.. 'try { num [i] = input.nextInt(); \t \t \t \t } 趕上(例外五){ 的System.out.println( 「錯誤數值請再試...。」); \t \t \t \t num [i] = input.nextInt(); }' – Nomad
我添加了示例代碼,正在爲我工作,以我的答案。 – izstas