为了账号安全,请及时绑定邮箱和手机立即绑定

终于做完了,大家帮忙看看有哪里还需要优化完善的

//这是测试类部分,自定义异常类大家都一样,就不贴了:

import java.util.InputMismatchException;

import java.util.Scanner;


public class Test {


public static void main(String[] args) {

// TODO Auto-generated method stub

Test t=new Test();

t.borrow();

}

public void borrow(){

String[] books={"西游记","三国演义","水浒传","红楼梦"};

Scanner input=new Scanner(System.in);

System.out.println("*******欢迎使用图书馆借书系统*******");

System.out.println("1. 按照书名查找图书       2.按照序号查找图书");

try{

int num=input.nextInt();

if(num==1){

System.out.println("请输入书名:");

String name=input.next();

for(int i=0;i<books.length;i++){

if(books[i].equals(name)){

System.out.println("找到图书---"+books[i]);

}else{

throw new NobookException("图书不存在,请重新输入");

}

}

}else if(num==2){

System.out.println("请输入序号:");

int no=input.nextInt();

if(no>0&&no<=books.length){

System.out.println("找到图书---"+books[no-1]);

}else{

throw new NobookException("图书不存在,请重新输入");

}

}else{

throw new ErrorCodeException("命令错误,请重新输入");

}

}catch(NobookException e){

System.out.println(e.getMessage());

borrow();

}catch(ErrorCodeException e){

System.out.println(e.getMessage());

borrow();

}catch(InputMismatchException e){

System.out.println("请按提示重新输入!");

borrow();

}

}


}


正在回答

5 回答

总体上说没有大问题,就是有一个地方有个小问题,按照书名找书那里,抛出“图书不存在”异常的时候(throw new NobookException("图书不存在,请重新输入");),是在for语句里面,程序无论如何都会抛出异常。

因为当你输入书名是“西游记”的时候,当i循环到等于1 的时候抛出异常,当你输入的书名不是“西游记”的时候,i=0马上就抛出异常了。


2 回复 有任何疑惑可以回复我~
#1

奇大姨父 提问者

谢谢啦
2019-04-01 回复 有任何疑惑可以回复我~
#2

慕无忌7406412 回复 奇大姨父 提问者

不用谢,共同进步!!
2019-04-01 回复 有任何疑惑可以回复我~

应该定义一个变量,保存book[i]的值然后通过判断该变量的值  输出图书 不然代码总是在for循环后抛出异常

0 回复 有任何疑惑可以回复我~

多处错误

0 回复 有任何疑惑可以回复我~

贴一下完整代码塞,参考一下哈哈


0 回复 有任何疑惑可以回复我~

粘贴上来格式怎么成这样了  好乱

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

终于做完了,大家帮忙看看有哪里还需要优化完善的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信