亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

異常問題,求幫忙

public int selectServer(){

int choose=0;

try{

choose = input.nextInt(); ?

if(choose<1||choose>6)

throw new Exception();

return choose;

} catch (InputMismatchException e){

System.out.println("輸入格式不正確,請重新正確數字:");

input.nextLine();

selectServer();

} catch (Exception e) {

System.out.println("請輸入正確數字(1~6):");

input.nextLine();

selectServer();

}

return choose;

}

第一次輸入錯誤拋出異常之后,重新輸入正確的數但是返回值不正確

正在回答

5 回答

public static void selectServer(){
int choose=0;
input = new Scanner(System.in);
try{
choose = input.nextInt();?
if(choose<1||choose>6){
throw new Exception();
}
System.out.println("final =" + choose);
} catch (InputMismatchException e){
System.out.println("輸入格式不正確,請重新正確數字:");
input.nextLine();
selectServer();
} catch (Exception e) {
System.out.println("請輸入正確數字(1~6):");
input.nextLine();
selectServer();
}

0 回復 有任何疑惑可以回復我~

具體參考線的代碼

public?static?void?selectServer(){
int?choose=0;
input?=?new?Scanner(System.in);
try{
choose?=?input.nextInt();??
if(choose<1||choose>6){
throw?new?Exception();
}?
System.out.println("final?="?+?choose);
}?catch?(InputMismatchException?e){
System.out.println("輸入格式不正確,請重新正確數字:");
input.nextLine();
selectServer();
}?catch?(Exception?e)?{
System.out.println("請輸入正確數字(1~6):");
input.nextLine();
selectServer();
}

}


0 回復 有任何疑惑可以回復我~

因為你輸入錯誤數據的時候,直接去selectServer(),沒有 結束當前的線程,后面還有return choose,所有你第一次輸入的數據會在第二次打印出來

0 回復 有任何疑惑可以回復我~
#1

王明曉 提問者

要怎么才能結束當前線程啊
2016-08-05 回復 有任何疑惑可以回復我~

這個函數,你每次出錯之后,都輸入一個數字,然后在重新執行selectServer(),又把choose置0 ,所以,,,,,你可以把那句話去掉試試

ps:新手,懂得不多。

0 回復 有任何疑惑可以回復我~
#1

王明曉 提問者

但是重新執行selectServer(),choose重置為0之后會繼續讓控制臺輸入一個choose給它賦值,應該會覆蓋啊
2016-08-05 回復 有任何疑惑可以回復我~

666


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

異常問題,求幫忙

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號