小白小白小白小白JAVA問(wèn)題請(qǐng)教
package?com.imooc.proj_1;
?
import?java.util.Scanner;
?
public?class?BookManagerEasy?{
????private?static?Scanner?console?=?new?Scanner(System.in);
?
????public?static?void?main(String[]?args)?{
????????//定義”圖書(shū)“數(shù)組
????????String[]?books?=?{?"C語(yǔ)言",?"數(shù)據(jù)結(jié)構(gòu)",?"匯編語(yǔ)言",?"高數(shù)",?"大學(xué)語(yǔ)文",?"毛概"?};
????????while?(true)?{
????????????System.out.println("輸入命令:1-按照名稱(chēng)查找圖書(shū);2-按照序號(hào)查找圖書(shū)");
????????????String?book;
????????????try?{
????????????????//取得整型命令
????????????????int?command?=?inputCommand();
????????????????//根據(jù)不同命令值,進(jìn)行不同操作
????????????????switch?(command)?{
????????????????case?1://按照?qǐng)D書(shū)名稱(chēng)選擇圖書(shū)
????????????????????book?=?getBookByName(books);
????????????????????System.out.println("book:"?+?book);
????????????????????break;
????????????????case?2://按照?qǐng)D書(shū)序號(hào)(數(shù)組下標(biāo))選擇圖書(shū)
????????????????????book?=?getBookByNumber(books);
????????????????????System.out.println("book:"?+?book);
????????????????????break;
????????????????case?-1://返回值為-1,說(shuō)明輸入有誤
????????????????????System.out.println("命令輸入錯(cuò)誤!請(qǐng)根據(jù)提示輸入數(shù)字命令!");
????????????????????continue;
????????????????default://其他值的命令均認(rèn)為是錯(cuò)誤命令
????????????????????System.out.println("命令輸入錯(cuò)誤!");
????????????????????continue;
????????????????}
????????????????break;//退出程序
????????????}?catch?(Exception?bne)?{
????????????????//捕獲”圖書(shū)不存在異?!皶r(shí),要求重新輸入命令
????????????????System.out.println(bne.getMessage());
????????????????continue;
????????????}?
????????}
????}
?
????//按照?qǐng)D書(shū)名稱(chēng)查詢(xún)圖書(shū)
????private?static?String?getBookByName(String[]?books)
????????????throws?Exception?{
????????System.out.println("輸入圖書(shū)名稱(chēng):");
????????//獲取輸入的圖書(shū)名稱(chēng)
????????String?name?=?console.next();
????????for?(int?i?=?0;?i?<?books.length;?i++)?{
????????????if?(name.equals(books[i]))
????????????????//輸入的名稱(chēng)與某一圖書(shū)名稱(chēng)匹配,返回該圖書(shū)
????????????????return?books[i];
????????}
????????//若無(wú)匹配,拋出”圖書(shū)不存在異?!?/p>
????????throw?new?Exception("圖書(shū)不存在!");
????}
?
????//根據(jù)圖書(shū)序號(hào)(數(shù)組下標(biāo))查詢(xún)圖書(shū)
????private?static?String?getBookByNumber(String[]?books)
????????????throws?Exception?{
????????while?(true)?{
????????????System.out.println("輸入圖書(shū)序號(hào):");
????????????try?{
????????????????//獲取輸入的圖書(shū)序號(hào)(數(shù)組下標(biāo))
????????????????int?index?=?inputCommand();
????????????????//若返回值為-1
????????????????if(index?==?-1){
????????????????????System.out.println("命令輸入錯(cuò)誤!請(qǐng)根據(jù)提示輸入數(shù)字命令!");
????????????????????continue;
????????????????}
????????????????//若不出現(xiàn)”數(shù)組下標(biāo)越界異?!?,則返回相應(yīng)位置的圖書(shū)
????????????????String?book?=?books[index];
????????????????return?book;
????????????}?catch?(ArrayIndexOutOfBoundsException?e)?{
????????????????//輸入的序號(hào)不存在(引發(fā)”數(shù)組下標(biāo)越界異?!埃?,則拋出”圖書(shū)不存在異?!?/p>
????????????????Exception?bookNotExists?=?new?Exception("圖書(shū)不存在!");
????????????????bookNotExists.initCause(e);
????????????????throw?bookNotExists;
????????????}
????????}
????}
?
????//從控制臺(tái)輸入命令,用于輸入命令和輸入圖書(shū)序號(hào)
????private?static?int?inputCommand(){
????????int?command;
????????try?{
????????????command?=?console.nextInt();
????????????return?command;
????????}?catch?(Exception?e)?{
????????????//若輸入字符型或者字符串,則拋出異常,捕獲該異常,拋出”錯(cuò)誤命令異?!?/p>
????????????console?=?new?Scanner(System.in);
????????????//返回-1
????????????return?-1;
????????}
????}
}
倒數(shù)第六行有下劃線的代碼有什么用,console究竟是什么
2016-10-19
console就是控制臺(tái),這行代碼意思就是在出現(xiàn)異常的時(shí)候重新創(chuàng)建控制臺(tái)對(duì)象