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

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

作業(yè)提交,供大家參考

其中,需要另外創(chuàng)建一個(gè)NoBookException的類來繼承RuntimeException類。本程序參考過java菜鳥工程師的程序,加以個(gè)人修改,如對原代碼有興趣請自行移步。運(yùn)行過程中,遇到一個(gè)有趣的問題,就是程序在運(yùn)行的過程中,不能關(guān)閉scanner,即不能scanner.close(),除非在程序運(yùn)行結(jié)束,也就是在本程序的①第一處和③第三處可以加上,關(guān)閉后程序并不在運(yùn)行。否則,程序?qū)⒊霈F(xiàn)錯(cuò)誤,錯(cuò)誤如下:

輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
1
輸出圖書書名:
數(shù)據(jù)結(jié)構(gòu)
book:數(shù)據(jù)結(jié)構(gòu)
輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
Exception?in?thread?"main"?java.util.NoSuchElementException
at?java.base/java.util.Scanner.throwFor(Scanner.java:937)
at?java.base/java.util.Scanner.next(Scanner.java:1594)
at?java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at?java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at?com.booklent.BookLent.BookBorrow(BookLent.java:29)
at?com.booklent.BookLent.BookBorrow(BookLent.java:39)
at?com.booklent.BookLent.main(BookLent.java:16)

歡迎有看法者提出意見!另外附上運(yùn)行結(jié)果如下:

輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
1
輸出圖書書名:
紅樓夢
com.booklent.NoBookException:?圖書不存在異常
輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
a
命令輸入錯(cuò)誤!請根據(jù)提示輸入數(shù)字命令!
輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
1
輸出圖書書名:
數(shù)據(jù)結(jié)構(gòu)
book:數(shù)據(jù)結(jié)構(gòu)
輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
2
輸入圖書序號(hào):
5
com.booklent.NoBookException:?沒有此序號(hào)的書
輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書
2
輸入圖書序號(hào):
1
book:高數(shù)
package?com.booklent;
import?java.util.Scanner;
import?java.util.Set;
import?java.util.Arrays;
import?java.util.HashSet;
import?java.util.InputMismatchException;
public?class?BookLent?{		
????static?String[]?books?=?{"數(shù)據(jù)結(jié)構(gòu)","高數(shù)","計(jì)算機(jī)"};		
????
????public?static?void?main(String[]?args)?{		
????????//?TODO?Auto-generated?method?stub		
????????BookLent?book?=?new?BookLent();		
????????book.BookBorrow();			
????????}	
????????
????????public?boolean?useSet(String[]?arr,?String?targetValue)?{	????
????????????Set<String>?set?=?new?HashSet<String>(Arrays.asList(arr));	????
????????????return?set.contains(targetValue);	
????????}		
????????
????????public?void?BookBorrow()?{		
????????????try?{			
????????????????System.out.println("輸入命令:1.按照名稱查找圖書;2.按照序號(hào)查找圖書");			
????????????????Scanner?input?=?new?Scanner(System.in);			
????????????????int?number?=?input.nextInt();						
????????????????if(number?==?1)?{				
????????????????????System.out.println("輸出圖書書名:");				
????????????????????Scanner?input1?=?new?Scanner(System.in);				
????????????????????String?bookname?=?input1.nextLine();				
????????????????????boolean?bookpres?=?useSet(books,bookname);				
????????????????????if(bookpres)?{					
????????????????????????System.out.println("book:"+bookname);					
????????????????????????//input1.close();①第一處				
????????????????????????}else?{					
????????????????????????//input1.close();②第二處					
????????????????????????throw?new?NoBookException("圖書不存在異常")?;				
????????????????????????}			
?????????????????????}else?if(number?==2)?{				
?????????????????????????System.out.println("輸入圖書序號(hào):");				
?????????????????????????Scanner?input2?=?new?Scanner(System.in);				
?????????????????????????int?booknum?=?input2.nextInt();				
?????????????????????????if(booknum>=0?&&?booknum?<?books.length)?{					
?????????????????????????????System.out.println("book:"+books[booknum]);					
?????????????????????????????//input2.close();③第三處				
?????????????????????????}else?{					
?????????????????????????????//input2.close();④第四處					
?????????????????????????????throw?new?NoBookException("沒有此序號(hào)的書");				
?????????????????????????}	
?????????????????????????//input.close();⑤第五處		
??????????????????????}					
????????????????????}catch(InputMismatchException?e){			
????????????????????????System.out.println("命令輸入錯(cuò)誤!請根據(jù)提示輸入數(shù)字命令!");	
????????????????????????BookBorrow();		
????????????????????}catch(NoBookException?e){			
????????????????????????System.out.println(e);			
????????????????????????BookBorrow();		
????????????????????}
????????}	
}


正在回答

8 回答

關(guān)于scanner.close(),不可以用try with resource 來自動(dòng)關(guān)閉嗎,大部分輸入輸出流都繼承了那個(gè)自動(dòng)關(guān)閉接口,應(yīng)該可以用吧

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

為什么沒有throws 異常類就可以直接拋出異常,不懂throws和throw的關(guān)系,請指教

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

http://img1.sycdn.imooc.com//5d9b094b00015b6603320117.jpg似乎沒有考慮輸入的命令為1、2之外的整數(shù)的情況,不過整體思路很清晰

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

寫的很清晰

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

https://img1.sycdn.imooc.com//5d381b7f0001a7c708280324.jpg無法應(yīng)用怎么辦

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

向遠(yuǎn)之航 提問者

我在第一句話里面講過,不知道你建了那個(gè)類沒有,可以檢查一下。這句話是:其中,需要另外創(chuàng)建一個(gè)NoBookException的類來繼承RuntimeException類。
2019-07-24 回復(fù) 有任何疑惑可以回復(fù)我~

大佬,你的后面有兩個(gè)catch,前面只有一個(gè)try怎么沒有報(bào)錯(cuò)0-0。麻煩大佬幫忙解惑一下,謝謝哦

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

向遠(yuǎn)之航 提問者

第一個(gè)catch是java自帶的,輸入類型不匹配的錯(cuò)誤捕捉,InputMismatchException。第二個(gè)是catch是在前面拋出了這種異常,throw new NoBookException("沒有此序號(hào)的書"),所以有兩個(gè)catch。
2019-07-22 回復(fù) 有任何疑惑可以回復(fù)我~
#2

明月暖清風(fēng) 回復(fù) 向遠(yuǎn)之航 提問者

好的,謝謝大佬。我再參考一下您的,研究研究
2019-07-22 回復(fù) 有任何疑惑可以回復(fù)我~

import?java.util.Set;import?java.util.HashSet;前面幾章有這兩個(gè)????

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

向遠(yuǎn)之航 提問者

java第三季的集合框架上有講解Set和hashSet,你可以參考以下,后邊再學(xué)習(xí)。
2019-06-11 回復(fù) 有任何疑惑可以回復(fù)我~
#2

小弟有疑問 回復(fù) 向遠(yuǎn)之航 提問者

我就是想不通怎么判斷用戶輸入的跟數(shù)組里的是否一樣,卡在這
2019-06-11 回復(fù) 有任何疑惑可以回復(fù)我~
#3

慕斯0203271 回復(fù) 小弟有疑問

equals 來判斷
2019-06-11 回復(fù) 有任何疑惑可以回復(fù)我~

給你點(diǎn)贊? 互相學(xué)習(xí)

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

向遠(yuǎn)之航 提問者

謝謝!
2019-05-23 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

作業(yè)提交,供大家參考

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

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

幫助反饋 APP下載

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

公眾號(hào)

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