要是我要把如下輸出:
輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書
2
輸入圖書序號:
0003
圖書不存在!
輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書
2
輸入圖書序號:
0002
book:高數(shù)
變?yōu)椋?輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書
2
輸入圖書序號:
0003
圖書不存在!
輸入圖書序號:
0002
book:高數(shù)
代碼應(yīng)該怎么改?
public?class?BookSearch?{
?BookDAO?bDAO[]?=?{new?BookDAO("0001",?"語文"),?new?BookDAO("0002",?"高數(shù)")};
?boolean?flagNoFould?=?true;
?
?public?void?searchBook()?throws?TypeException,NoBookException{
??while(flagNoFould){??
???try{
????System.out.println("輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書");
????Scanner?scan?=?new?Scanner(System.in);
????int?input?=?scan.nextInt();
????searchModel(input);
??
????if(input?==?1){
?????System.out.println("輸入圖書名稱:");
?????String?name?=?scan.next();
?????searchByName(name);
????}
????if(input?==?2){
?????System.out.println("輸入圖書序號:");
?????String?bookID?=?scan.next();
?????searchByID(bookID);
????}????
???}catch(TypeException?e){
????this.searchBook();
???}catch(NoBookException?e){
????continue;
???}
??}??
?}
?
?private?void?searchModel(int?model)?throws?TypeException?{
??try{
???if(!(model==?1?||?model?==2)){
????throw?new?TypeException("命令輸入錯誤!請根據(jù)提示輸入數(shù)字命令!");
???}
??}catch(TypeException?e){
???System.out.println(e.getMessage());
??}
?}
?
?private?void?searchByName(String?name)?throws?NoBookException?{
??try{
???for(int?i?=?0;?i?<?bDAO.length;?i++){
????if(name.equals(bDAO[i].getName())){
?????System.out.println("book:"?+?bDAO[i].getName());?
?????flagNoFould?=?false;
?????break;
????}
???}
???if(flagNoFould){
????throw?new?NoBookException("圖書不存在!");
???}
??}catch(NoBookException?e){
???System.out.println(e.getMessage());
??}???
?}
?
?private?void?searchByID(String?bookID)?throws?NoBookException?{
??try{
???for(int?i?=?0;?i?<?bDAO.length;?i++){
????if(bookID.equals(bDAO[i].getBookID())){
?????System.out.println("book:"?+?bDAO[i].getName());?
?????flagNoFould?=?false;
?????break;
????}
???}
???if(flagNoFould){
????throw?new?NoBookException("圖書不存在!");
???}?
??}catch(NoBookException?e){
???System.out.println(e.getMessage());
??}?
?}
?
}
2015-01-28
拋出異常 ?? ? "圖書不存在" 不是你 if 語句那里判斷輸出的嗎 , 不是 catch 的異常 , ?你輸出 圖書不存在 后 沒把?flagNoFould 改成 false , 你原來 的?flagNoFould 定義的是 true , ?所一 while 就重新執(zhí)行了?
2015-01-28
就是在書不存在的時(shí)候不返回到原來那步 , 直接繼續(xù)輸入 ,?