這兩期視頻最后每次做項目都不成功,該重頭看還是繼續(xù)之后再回頭?
視頻一點點看過來的,每個小結的案例都跟著做,事后也能自己寫出來。但是一到最后的小項目就蒙了,大體思路有但是小的細節(jié)實現(xiàn)老是出錯。
第三期的圖書系統(tǒng),我參照上一期的租車,做個book類給每本書序號sn和書名name,結果不懂怎么把輸入書名inputName與每個book對象的name做循環(huán)判斷。
看著別人的代碼整體仿寫,結果tyr-catch的時候無論try里面是否有問題,都會順序走到catch里面,哪里的問題啊。。。
package?com.imooc.LoanDesk; import?java.util.InputMismatchException; import?java.util.Scanner; public?class?LoanDesk?{ //?Book[]?b?=?{new?Book(1,"數(shù)據(jù)結構"),?new?Book(2,"高等數(shù)學"),?new?Book(3,"Java核心1"),?new?Book(4,"Java核心2")}; String[]?book?=?{"數(shù)據(jù)結構",?"高數(shù)",?"Java核心技術卷一",?"Java核心技術卷二"}; //?command()接受輸入并返回1或2,不是整數(shù)拋出錯誤,不是1或2拋出錯誤 public?int?command()?throws?Exception?{ int?i; Scanner?input?=?new?Scanner(System.in); System.out.println("如何查找圖書?1.按名稱?2.按序號"); try?{ i?=?input.nextInt(); }?catch?(InputMismatchException?e)?{ throw?new?InputMismatchException("請輸入數(shù)字!程序結束!"); } if?((i!=1)?||?(i!=2))?{ throw?new?OtherException("請輸入1或2!"); } return?i; } //?searchName()接收先接受 public?void?searchName()?throws?NoBookException?{ //?Book?a?=?new?Book(); System.out.print("請輸入書名:"); Scanner?input?=?new?Scanner(System.in); String?name?=?input.nextLine(); for?(int?i=0;?i?<?book.length;?i++)?{ if?(name.equals(book[i]))?{ System.out.println("找到了!正在為《"+book[i]+"辦理手續(xù)!"); break; }? if?(i?==?book.length)?{ throw?new?NoBookException("沒有這本書。"); } } } //?searchSN() public?void?searchSN()?throws?NoBookException?{ Scanner?input?=?new?Scanner(System.in); int?i?=?input.nextInt(); if?(i>0?&&?i<book.length)?{ System.out.println("找到了!正在為《"+book[i]+"》辦理手續(xù)!"); }?else?{ throw?new?NoBookException("沒有這么多書啊。。"); } } //?主程序 //?在while循環(huán)中,用command()詢問并接受查找方式s //?詢問并接收書名并調用searchName()獲取結果or詢問并接收序號并調用searchSN()獲取結果 public?static?void?main(String[]?args)?{ Scanner?input?=?new?Scanner(System.in); LoanDesk?ld?=?new?LoanDesk(); int?s?=?0;? while?(true)?{ try?{s?=?ld.command();}?catch?(Exception?e)?{System.out.println("輸入錯誤,但是詳情顯示不出來!");} switch?(s)?{ case?1:?try?{ ld.searchName(); }?catch?(NoBookException?e)?{ e.printStackTrace(); System.out.println("通過此書名找不到"); }?break; case?2:?try?{ ld.searchSN(); }?catch?(NoBookException?e)?{ e.printStackTrace(); System.out.println("通過此序號找不到"); }? } } } }
2016-11-03
重新看,一定要扎實基礎的!