import java.util.*;
/**
* 借书系统
* @author ppcc
*
*/
public class Library {
/**
* 字符串数组存放图书信息
*/
String[] bookArr;
/**
* 输入
*/
Scanner sc=new Scanner(System.in);
/**
* 构造函数
*/
public Library(){
//将图书信息存入数组
bookArr=new String[]{"高数","数据结构","操作系统","C语言"};
}
/**
* 主菜单
*/
public void menuMain(){
//提示语句
System.out.println("1-按名称查找图书\t2-按序号查找图书");
System.out.print("输入命令:");
try{
//用户输入选择菜单
int sel=sc.nextInt();
//选择按名称查找图书
if(sel==1) searchByName();
//按序号查找图书
else if(sel==2) searchById();
//输入除1和2以外的数字
else System.out.println("命令输入错误!请选择1或2");
}catch(InputMismatchException e){
//输入不是数字,提示出错
System.out.println("命令输入错误!请根据提示输入数字命令");
}finally{
sc=new Scanner(System.in);
//返回主界面
System.out.println("");
menuMain();
}
}
/**
* 按序号查找图书子菜单
*/
private void searchById() {
//提示语句
System.out.print("输入图书序号:");
try{
//用户输入图书序号
int id=sc.nextInt();
//无异常输出图书
System.out.println("Book:"+bookArr[id]);
}catch(InputMismatchException e){
//输入不为数字,提示出错
System.out.println("命令输入错误!请根据提示输入数字命令!");
}
catch(ArrayIndexOutOfBoundsException e){
//输入不存在的序号,提示结果
System.out.println("不存在该图书!");
}
}
/**
* 按名称查找图书子菜单
*/
private void searchByName() {
//提示
System.out.print("输入图书名称:");
//查询到的书
String findBook=null;
//书名
String name=sc.next();
//for循环匹配是否存在这本书
for(int i=0;i<bookArr.length;i++){
//找到这本书
if(bookArr[i].equals(name)){
findBook=bookArr[i];
break;
}
}
//找不到书
if(findBook==null) System.out.println("不存在该书");
//输出找到的书信息
else System.out.println("Book:"+findBook)
}
/**
* 主函数
* @param args
*/
public static void main(String[] args) {
Library library=new Library();
library.menuMain();
}
}java提供异常处理机制,在有可能会抛出异常的地方使用异常去处理,比如例程中当捕获到输入异常或者数组下标越界异常时,就需要去处理,无论是提示信息也好,还是进一步做业务处理,对于程序员来说,就能作为主动方直观地明白程序到底是怎么运行的,遇到了什么问题等等。而if判断常用于处理业务逻辑,而且最好是if else成对出现,使代码更加直观,也避免了漏掉某种可能出现的结果。