风中过客
2015-04-22 14:39
//需要对应定义三个异常类,写的很差,好在是写出来了 只为自己纪念。 package com.guoke; import java.util.Scanner; import java.util.InputMismatchException; public class SimulatedLibrarySystem { private String [] books={"高数","数据结构","慕课","123"};//图书馆的书.不能放到main方法里面,因为放进去就是局部变量。 public static void main(String[] args) { System.out.println("输入命令:1-按照名称查找图书;\t2-按照序号查找图书"); Scanner scan=new Scanner(System.in);//创建接收输入对象scan SimulatedLibrarySystem s=new SimulatedLibrarySystem();//创建一个对象s,便于调用数组 int a=3; while((a!=1)&&(a!=2)){//输入命令选择查找方式 try{ a=scan.nextInt();//将输入放入a中 s.getRightOrder(a);//判断输入是否正确,如无异常,则继续; // System.out.println(b); }catch(InputMismatchException e){//输入的不是整型数字,捕获异常 System.out.println("命令输入错误!请根据提示输入命令字符!"); scan.next();//获取Scanner对象扫描到的键盘输入,如果不获取,会因为while一直给异常提示 }catch(OrderNotExist f){//输入的不是1或2,捕获异常 } } switch(a){//进入对应的查找方式 case 1: while(a!=3){//进入方式1 System.out.println("输入图书名称"); try { String book=scan.next(); book=s.getRightBook(book);//判断图书存在与否 System.out.println("book:"+book); } catch (BookNotExist e) { // TODO: handle exception } } case 2: while(a!=3){//进入方式2 输入序号(数组下标)找书 System.out.println("输入图书序号"); try { int number=scan.nextInt();//输入下标 number=s.getRightBook2(number);//判断图书存在与否 System.out.println("book:"+s.books[number]); } catch (BookNotExist2 e) { // TODO: handle exception } } // System.out.println("over"); } } private void getRightOrder(int a) throws OrderNotExist{//判断输入是否为1或2,否则抛出异常 if((a!=1)&&(a!=2)){ throw new OrderNotExist(); } } public String getRightBook(String book) throws BookNotExist{//按书名找图书 for(int i=0;i<books.length;i++){ if(book.equals(books[i])){//找到则返回图书名 return book; } }throw new BookNotExist(); } public int getRightBook2(int number) throws BookNotExist2{//按下标找图书,找到则返回图书名 否则报错 if(number>books.length-1||number<0){//下标超出数组范围抛出异常 throw new BookNotExist2(); } return number; } }
棒棒的。
看完视频推荐来看你、
太有缘了
Java入门第三季
409791 学习 · 4340 问题
相似问题