holy_yakutsk
2017-04-18 09:51:57
package?tushu;
public?class?Shu?extends?Tushu{
public?Shu(int?id,String?name){
this.name=name;
this.id=id;
}
}package?tushu;
public?class?Tushu?{
int?id;
String?name;
}package?tushu;
import?java.util.Scanner;
public?class?Use?{
public?static?void?main(String[]?args)?{
//?TODO?自動(dòng)生成的方法存根
Tushu?Tushu[]?=?{
new?Shu(1,"數(shù)學(xué)"),
new?Shu(2,"語文"),
new?Shu(3,"英語"),
new?Shu(4,"物理")
};
System.out.println("輸入命令:/t1:按照名稱查找圖書/t2:按照序號(hào)查找圖書");
Scanner?input?=?new?Scanner(System.in);
int?id=input.nextInt();
if(id==1){
System.out.print("輸入書名:");
String?ru=input.next();
for(int?i=0;i<Tushu.length;i++){
if(Tushu[i].name.equals(ru)){
System.out.println("book:"+Tushu[i].name);
System.exit(0);
}
}
System.out.println("圖書不存在");
Use.main(args);
}else?if(id==2){
System.out.print("輸入序號(hào):");
int?e=input.nextInt();
for(int?i=0;i<Tushu.length;i++){
if(Tushu[i].id==e){
System.out.println("book:"+Tushu[i].name);
System.exit(0);
}
}
System.out.println("圖書不存在");
Use.main(args);
}else{
System.out.println("輸入錯(cuò)誤,請根據(jù)提示輸入。");
Use.main(args);
}
}
}能正常運(yùn)行,但是異常處理,用try{}catch(){}包圍不會(huì),求指導(dǎo)
1 回答

慕勒0069038
TA貢獻(xiàn)143條經(jīng)驗(yàn) 獲得超39個(gè)贊
我感覺這個(gè)程序只有2個(gè)nextint的地方可能出錯(cuò) 用InputMismatchException 錯(cuò)誤可以捕獲

慕妹5461943
TA貢獻(xiàn)290條經(jīng)驗(yàn) 獲得超0個(gè)贊

風(fēng)中打傘的小孩
TA貢獻(xiàn)73條經(jīng)驗(yàn) 獲得超20個(gè)贊
try里面放置自己感覺會(huì)出錯(cuò)的代碼,catch里面放置怎么處理的代碼。
簡單的,在?Java?中要將 String 類型轉(zhuǎn)化為 int 類型時(shí),需要使用 Integer 類中的?parseInt() 方法,它是需要異常處理的,因?yàn)樽址锌赡軙?huì)出現(xiàn)非數(shù)字的情況。
這個(gè)例子里,輸入序號(hào)那里,如果用戶輸入的序號(hào)大于數(shù)組長度了,不是就會(huì)發(fā)生數(shù)組越界了嗎,不過,你那樣處理不會(huì)。
添加回答
舉報(bào)
0/150
提交
取消