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成对出现,使代码更加直观,也避免了漏掉某种可能出现的结果。