import?java.util.*;
/**
?*?借書系統(tǒng)
?*?@author?ppcc
?*
?*/
public?class?Library?{
/**
?*?字符串?dāng)?shù)組存放圖書信息
?*/
String[]?bookArr;
/**
?*?輸入
?*/
Scanner?sc=new?Scanner(System.in);
/**
?*?構(gòu)造函數(shù)
?*/
public?Library(){
//將圖書信息存入數(shù)組
bookArr=new?String[]{"高數(shù)","數(shù)據(jù)結(jié)構(gòu)","操作系統(tǒng)","C語言"};
}
/**
?*?主菜單
?*/
?public?void?menuMain(){
//提示語句
System.out.println("1-按名稱查找圖書\t2-按序號查找圖書");
????System.out.print("輸入命令:");
try{
//用戶輸入選擇菜單
int?sel=sc.nextInt();
//選擇按名稱查找圖書
if(sel==1)?searchByName();
//按序號查找圖書
????????????????else?if(sel==2)?searchById();
//輸入除1和2以外的數(shù)字
else?System.out.println("命令輸入錯誤!請選擇1或2");
}catch(InputMismatchException?e){
//輸入不是數(shù)字,提示出錯
System.out.println("命令輸入錯誤!請根據(jù)提示輸入數(shù)字命令");
}finally{
sc=new?Scanner(System.in);
//返回主界面
System.out.println("");
menuMain();
}
}
/**
?*?按序號查找圖書子菜單
?*/
private?void?searchById()?{
//提示語句
System.out.print("輸入圖書序號:");
try{
//用戶輸入圖書序號
int?id=sc.nextInt();
//無異常輸出圖書
System.out.println("Book:"+bookArr[id]);
}catch(InputMismatchException?e){
//輸入不為數(shù)字,提示出錯
System.out.println("命令輸入錯誤!請根據(jù)提示輸入數(shù)字命令!");
}
catch(ArrayIndexOutOfBoundsException?e){
//輸入不存在的序號,提示結(jié)果
System.out.println("不存在該圖書!");
}
}
/**
?*?按名稱查找圖書子菜單
?*/
private?void?searchByName()?{
//提示
System.out.print("輸入圖書名稱:");
//查詢到的書
String?findBook=null;
//書名
String?name=sc.next();
//for循環(huán)匹配是否存在這本書
for(int?i=0;i<bookArr.length;i++){
//找到這本書
if(bookArr[i].equals(name)){
findBook=bookArr[i];
break;
}
}
//找不到書
if(findBook==null)?System.out.println("不存在該書");
//輸出找到的書信息
else?System.out.println("Book:"+findBook)
}
/**
?*?主函數(shù)
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
????????????Library?library=new?Library();
????????library.menuMain();
}
}
2015-12-14
java提供異常處理機制,在有可能會拋出異常的地方使用異常去處理,比如例程中當(dāng)捕獲到輸入異?;蛘邤?shù)組下標(biāo)越界異常時,就需要去處理,無論是提示信息也好,還是進(jìn)一步做業(yè)務(wù)處理,對于程序員來說,就能作為主動方直觀地明白程序到底是怎么運行的,遇到了什么問題等等。而if判斷常用于處理業(yè)務(wù)邏輯,而且最好是if else成對出現(xiàn),使代碼更加直觀,也避免了漏掉某種可能出現(xiàn)的結(jié)果。