为了账号安全,请及时绑定邮箱和手机立即绑定

java入门第三季第一章项目答案

标签:
Java

package com.imooc.test;

import java.util.*;

public class BookManager {
static Scanner reader = new Scanner(System.in);

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String[] books = { "C语言", "数据结构", "汇编语言", "高数", "大学语文", "毛概" };
    while (true) {
        System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
        String book;
        try {
            // 取得整型命令
            int command = inputCommand();
            // 根据不同命令值,进行不同操作
            switch (command) {
            case 1:
                book = getBookByName(books);
                System.out.println("book:" + book);
                break;
            case 2:
                book = getBookByNum(books);
                System.out.println("book:" + book);
                break;
            case -1:
                System.out.println("输入的数字有误,请重新输入!");
                continue;
            default:
                System.out.println("输入的类型有错误,请重新输入!");
                continue;
            }
        } catch (Exception e) {
            // 捕获”图书不存在异常“时,要求重新输入命令
            System.out.println(e.getMessage());
            continue;
        }

    }

}

// 利用图书名称查询图书的方法
private static String getBookByName(String[] books) throws Exception {
    System.out.println("请输入图书名称:");
    String name = reader.next();
    for (int i = 0; i < books.length; i++) {
        if (name.equals(books[i])) {
            return books[i];
        }
    }

    throw new Exception("没有该书本!");

}

// 利用图书序号来查询图书的方法
private static String getBookByNum(String[] books) throws Exception {
    while (true) {
        System.out.println("请输入图书序号:");
        try {
            // 获取输入的图书序号(数组下标)
            int index = inputCommand();
            // 若返回值为-1
            if (index == -1) {
                System.out.println("命令输入错误,请根据命令输入数字!");
                continue;
            }
            String book = books[index-1];
            return book;
        } catch (ArrayIndexOutOfBoundsException e) {
            // 若不出现”数组下标越界异常“,则返回相应位置的图书
            Exception bookNotExits=new Exception("命令错误!");
            bookNotExits.initCause(e);
            throw bookNotExits;
        }
    }
}

// 从控制台输入命令,用于输入命令和输入图书序号
private static int inputCommand() {
    int command;
    try {
        command = reader.nextInt();
        return command;
    } catch (Exception e) {
        // 若输入字符型或者字符串,则抛出异常,捕获该异常,抛出”错误命令异常“
        reader = new Scanner(System.in);
        // 返回-1
        return -1;
    }
}

}

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消