已经把图书存放在数组,但是当按序号查找的时候,已经存在的但是她还是会给我处理成异常,说没有该图书,可以帮忙解决一下吗
package lesson15;
import java.util.InputMismatchException;
import java.util.Scanner;
import lesson10.Card;
/**
* 创建一个图书管理员类
* @author kangshan
*
*/
public class Boss {
Scanner input=new Scanner(System.in);
//创建一个图书数组
Book book[]=new Book[100];
public void menu(){
System.out.println("请输入命令:1.按照名称查找图书\t2.按照序号查找图书\t3.添加图书\t4.查询");
String op=input.next();
switch (op) {
case "1":
quarryName();
break;
case "2":
quarryId();
break;
case "3":
addBook();
break;
case "4":
quarry();
break;
default:
System.out.println("没有这个选项!");
break;
}
menu();
}
/**
*添加图书
*/
int i=0;
public void addBook(){
//处理数组越界的异常
try {
System.out.print("请输入添加的图书名称:");
String a=input.next();
System.out.print("请输入图书序号:");
int c=input.nextInt();
//创建一个新的book对象
Book b=new Book(a, c);
//把book对象存放到数组中
book[i]=b;
System.out.println("添加成功!");
menu();
if (i>book.length) {
}
if (input.hasNextInt()) {
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("内存已满,无法继续添加!");
}catch (InputMismatchException e) {
System.out.println("输入必须为整数!");
}
i++;
}
/**
* 查询方法
*/
int j=0;
public void quarry(){
try {
if (book[i]==null) {
}
System.out.println("书名\t序号");
for (int j = 0; j < book.length; j++) {
System.out.println(book[i].name+"\t"+book[i].id);
return;
}
} catch (NullPointerException e) {
System.out.println("没有图书!");
}
}
/**
* 按照名称查找图书
*/
public void quarryName(){
try {
System.out.print("请输入图书名称:");
String name=input.next();
for (int i = 0; i < book.length; i++) {
if (name==book[i].name) {
System.out.println("book"+book[i].name);
return;
}
}
} catch (Exception e) {
System.out.println("图书不存在!");
}
}
/**
* 按照序号查找
*/
public void quarryId(){
try {
if (input.hasNextInt()) {
}
System.out.print("请输入图书序号:");
int id=input.nextInt();
for (int i = 0; i < book.length; i++) {
id=book[i].id;
return;
}
}catch (InputMismatchException e) {
System.out.println("必须输入整数!");
} catch (NullPointerException e) {
System.out.println("图书不存在!");
}
}
}