有一個自己寫代碼時的問題
while (true) {
try {
player1.ID = console.nextInt();
} catch (Exception e) {
System.out.println("請輸入數字ID!");
continue;
// TODO: handle exception
}
break;
}
這里定義的player1.ID是int型的,希望達到的效果是輸入非數字型時提示用戶“請輸入數字ID”,通過continue進行下一輪循環以便重新輸入,可是這個代碼當我輸入非數字時,程序不斷的循環打出“請輸入數字ID”,無限循環,直接跳過 了輸入步驟,這是為什么呢?
2016-08-11
0.0,,這就不是回復樓了吧?? 233333
2016-08-10
用Scanner接收鍵盤輸入的值,如果發生異常會一直返回這個異常值,這里要用String接收然后轉成int.
try {
String str = console.next();
int id = Integer.parseInt(str);
} catch (Exception e) {
System.out.println("請輸入數字ID!");
continue;
}
2016-08-10
因為try是執行一個方法,catch只是捕獲異常,不要用coutinue,要實現你的功能,你可以在catch塊里加一個if判斷,然后直接拋出一個異常,然后用finally來處理。代碼修改如下:
public ?void 類(){
try {
int player1.ID = console.nextInt();
if(//你自己實現判斷,輸入的不是數字){
Exception e=new Exception();
throw e;
}
} catch (Exception e) {
System.out.println("請輸入數字ID!");
}finally{
類 ?對象名 =new 類(); ? //在本類中創建一個對象
對象名.類();
}
}