第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

作業(yè)問題.當(dāng)提示輸入命令時(shí),輸入a(非int類型),就會(huì)捕獲輸入類型錯(cuò)誤。按理,它應(yīng)該能回去循環(huán),重新輸入命令,結(jié)果它停不下來了。求解

package?imooc_java_3_1_9;
import?java.util.InputMismatchException;
import?java.util.Scanner;
import?java.util.*;

/*
?*?1.定義字符串?dāng)?shù)組保存書籍信息
?*?
?*?2.提示用戶輸入,分別按“書名”和“圖書序號(hào)”查找圖書
?*?
?*?3.根據(jù)輸入的信息進(jìn)行適當(dāng)?shù)漠惓L幚??*?	a.如果輸入類型錯(cuò)誤,拋出“錯(cuò)誤命令異?!保⑻崾局匦螺斎??*?	b.如果書名不存在,拋出“圖書不存在異常”,并提示重新輸入
?*?	c.如果圖書序號(hào)超過字符串?dāng)?shù)組范圍,拋出“圖書不存在異?!?,并提示重新輸入
?*/
public?class?RunThisProject?{
	
	//根據(jù)書名查找圖書
	public?void?searchAsName?(?String?bookName,String?[]?bookInfo)?throws?Exception?{
		int?checkIfHave?=?0;//用于計(jì)數(shù),若存在和書名一樣的書則+1
		//遍歷圖書信息數(shù)組,和輸入的書名比對(duì),若書名存在,則輸出書名,否則拋出“圖書不存在”異常
		for(int?i?=?0;?i?<?bookInfo.length;?i++){
			if(bookName.equals(bookInfo[i])){
				System.out.println("book:"+bookInfo[i]);
				checkIfHave?++;
			}
		}
		if(checkIfHave?<?1){
			throw?new?Exception("圖書不存在!");
		}
	}
	
	//根據(jù)序號(hào)查找圖書
	public?void?searchAsNo(int?bookNo?,?String[]?bookInfo)throws?Exception?{
//		如果輸入的圖書序號(hào)小于最小下標(biāo)0?或?大于最大下標(biāo),即超出數(shù)組范圍,則提示異?!按藞D書序號(hào)不存在”,否則輸出序號(hào)對(duì)應(yīng)圖書名
		if((bookNo?<?0)||(bookNo?>?bookInfo.length?)){
			throw?new?Exception("此圖書序號(hào)不存在!");
		}else{
			System.out.println("book:"+bookInfo[bookNo]);
		}
	}
	
	public?static?void?main(String[]?args)?throws?Exception??{
		
	String[]?bookInfo?=?new?String[]{"高等數(shù)學(xué)","大學(xué)物理","大學(xué)英語","軟件工程","線性代數(shù)"};//用字符串?dāng)?shù)組存儲(chǔ)圖書信息
	RunThisProject?rtp1?=?new?RunThisProject();//實(shí)例化RunThisProject類的對(duì)象,用于調(diào)用此類中的方法
	Scanner?input?=?new?Scanner(System.in);
	
	
	boolean?controler?=?true;//用于控制循環(huán)是否繼續(xù)
	while(controler){
		System.out.println("請(qǐng)輸入命令:1-按照名稱查找圖書	2-按照?qǐng)D書序號(hào)查找圖書");
	try{
		int?checkWay?=?0;?//存儲(chǔ)用戶的選擇
		checkWay?=?input.nextInt();
//		如果選擇1-按照名稱查找圖書
		if(checkWay?==?1){
			System.out.println("請(qǐng)輸入您要查找的圖書名稱:");//提醒用戶輸入
			String?bookName;//存儲(chǔ)用戶輸入的書名
			bookName?=?input.next();//輸入書名
			rtp1.searchAsName(bookName,?bookInfo);//調(diào)用searchAsName方法
		}
		
//		如果選擇2-按照?qǐng)D書序號(hào)查找圖書
		if(checkWay?==?2){
			System.out.println("請(qǐng)輸入您要查找的圖書序號(hào):");//提示用戶輸入圖書序號(hào)
			int?bookNo?=?input.nextInt();//輸入序號(hào)
			rtp1.searchAsNo(bookNo,?bookInfo);//調(diào)用searchAsNo方法
		}
		controler?=?false;//若正常執(zhí)行,無異常,則讓controler借書,停止while循環(huán)
		
	}catch(InputMismatchException?e?){//捕獲輸入類型不符合的異常
		System.out.println("命令輸入錯(cuò)誤,請(qǐng)根據(jù)提示輸入數(shù)字命令!");
		
	}catch(Exception?e2){//捕獲圖書檢測(cè)的異常,此圖書不存在?或?此序號(hào)不存在?兩種異常
		System.out.println(e2.getMessage());
	}
	}
	System.out.println("程序結(jié)束了!");
	}
	
}

56c084930001e78004100096.jpg

56c0849300010e2304030370.jpg

附上可能的問題,求解決問題。

When a scanner throws an InputMismatchException, the scanner will not pass the token that caused the exception, so that it may be retrieved or skipped via some other method.?


正在回答

2 回答

把Scanner input=new Scanner(System.in)塞到try的肚子里面去

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

l_yanlei 提問者

測(cè)試過可行?
2016-02-28 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕粉3562401

catch吧
2016-07-19 回復(fù) 有任何疑惑可以回復(fù)我~

已解決。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

嗚拉巴哈哈

請(qǐng)問怎么修改?
2016-02-23 回復(fù) 有任何疑惑可以回復(fù)我~
#2

l_yanlei 提問者 回復(fù) 嗚拉巴哈哈

為什么會(huì)出現(xiàn)這樣的問題?就是異常里所描述的,但Scanner跑出一個(gè)InputMismatchException時(shí),Scanner可能會(huì)無法正常運(yùn)作,會(huì)一直保持著一開始讀進(jìn)來的“a”,于是不斷的報(bào)錯(cuò)。那么解決辦法就是,讓Scanner銷毀它現(xiàn)在存儲(chǔ)的這個(gè)錯(cuò)誤的命令(“a”),當(dāng)它變空了,就能重新讀入正確的命令了。而讓Scanner銷毀當(dāng)前對(duì)象,你只需在跑出錯(cuò)誤的時(shí)候,補(bǔ)寫一句input.next();就好了。不知道我說明白沒有- -
2016-02-28 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

作業(yè)問題.當(dāng)提示輸入命令時(shí),輸入a(非int類型),就會(huì)捕獲輸入類型錯(cuò)誤。按理,它應(yīng)該能回去循環(huán),重新輸入命令,結(jié)果它停不下來了。求解

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)