亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

作業疑問:

要是我要把如下輸出:
輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書
2
輸入圖書序號:
0003
圖書不存在!
輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書
2
輸入圖書序號:
0002
book:高數

變為:
輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書
2
輸入圖書序號:
0003
圖書不存在!
輸入圖書序號:
0002
book:高數

代碼應該怎么改?

public?class?BookSearch?{
?BookDAO?bDAO[]?=?{new?BookDAO("0001",?"語文"),?new?BookDAO("0002",?"高數")};
?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("命令輸入錯誤!請根據提示輸入數字命令!");
???}
??}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());
??}?
?}
?
}

正在回答

2 回答

拋出異常 ?? ? "圖書不存在" 不是你 if 語句那里判斷輸出的嗎 , 不是 catch 的異常 , ?你輸出 圖書不存在 后 沒把?flagNoFould 改成 false , 你原來 的?flagNoFould 定義的是 true , ?所一 while 就重新執行了?

0 回復 有任何疑惑可以回復我~
#1

時光醉了流年 提問者

我的異常鏈寫錯了〒_〒
2015-01-28 回復 有任何疑惑可以回復我~
#2

_Exception 回復 時光醉了流年 提問者

>A<
2015-01-28 回復 有任何疑惑可以回復我~

就是在書不存在的時候不返回到原來那步 , 直接繼續輸入 ,?

0 回復 有任何疑惑可以回復我~
#1

時光醉了流年 提問者

才發現當拋出異常后是重新執行while語句,根本就沒執行catch,為什么會這樣?
2015-01-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

作業疑問:

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號