问答详情
源自:1-9 经验总结

交作业---模拟结束系统

public class BorrowBook {
    public static String[] books = {"第一行代码", "thinking in java", "安卓探索艺术"};
    public static Scanner sc;
    public static boolean flag = true;
    public static boolean isIndexOrName = false;

    public static void main(String[] args) {
        System.out.println("***欢迎来到模拟图书系统***");
        System.out.println("请输入您要查找图书的方式:1.按图书序号查找" + "\t" + "2.按图书名称查找");
        System.out.println("请输入一个有效查找方式:");
        find2IndexOrName();
    }

    private static void find2IndexOrName() {
        sc = new Scanner(System.in);
        int input = sc.nextInt();
        try {
            if (1 == input) {
                System.out.println("请输入有效图书序号:");
                int index = sc.nextInt();
                find2Index(index);
            } else if (2 == input) {
                System.out.println("请输入正确的书名:");
                String name = sc.next();
                find2Name(name);
            } else {
                throw new Exception();
            }
        } catch (Exception e) {
            System.out.println("请输入正确指令:");
            find2IndexOrName();
        }
    }

    public static void find2Name(String name) {
        isIndexOrName = true;
        try {
            for (int i = 0; i < books.length; i++) {
                if (name.equals(books[i])) {
                    showBook(name, i);
                    break;
                } else {
                    throw new Exception();
                }
            }
        } catch (Exception e) {
            System.out.println("图书不存在,请重新输入:");
            String s = sc.next();
            find2Name(s);
        }
    }

    public static void find2Index(int index) {
        isIndexOrName = false;
        try {
            for (int i = 0; i < books.length; i++) {
                if (index == i) {
                    showBook(index);
                    break;
                } else if (index > 2) {
                    throw new Exception();
                }
            }
        } catch (Exception e) {
            System.out.println("图书不存在,请重新输入:");
            int i = sc.nextInt();
            find2Index(i);
        }
    }

    /**
     * 通过书名查找图书
     *
     * @param name  书名
     * @param index 书名对应的下标
     */
    private static void showBook(String name, int index) {
        System.out.println("***查找到以下内容***");
        if (books[index].equals(name)) {
            System.out.println("第一行代码");
        } else if (books[index].equals(name)) {
            System.out.println("thinking in java");
        } else if (books[index].equals(name)) {
            System.out.println("安卓探索艺术");
        }
        System.out.println("***确定借阅吗?(Y/N)***");
        String s = sc.next();
        isBorrow(s);
    }

    /**
     * 通过图书序号查找
     *
     * @param index 图书的序号
     */
    private static void showBook(int index) {
        System.out.println("***查找到以下内容***");
        System.out.println(books[index]);
        System.out.println("确认借阅本书吗?(Y/N)");
        String s = sc.next();
        isBorrow(s);
    }

    private static void isBorrow(String s) {
        if (s.equals("Y") || s.equals("y")) {
            System.out.println("恭喜您借阅成功");
        } else if (s.equals("N") || s.equals("n")) {
            System.out.println("您以取消操作!请重新操作!");
            if (flag) {
                System.out.println("请输入一个有效查找方式:"+"\n"+"1.按序号查找"+"\n"+"2.按书名查找");
                find2IndexOrName();
            }
        }
    }
}


提问者:慕标5588573 2019-02-23 14:19

个回答

  • qq_conqueror_2
    2019-02-25 10:36:43

    都没有用到多重catch