继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

(java入门第3季作业 异常处理)模拟借书系统

幕幕007
关注TA
已关注
手记 1
粉丝 0
获赞 17
/*(book 类放在另一个类文件中)*/
package com.Partlibrary;
public class book {
    int num;
    String name;
    public book(int num,String name)
    {
        this.num=num;
        this.name=name;
    }
}
package com.Partlibrary;
import java.util.Scanner;

public class Library {
    static book[] books={new book(1,"算法导论"),new book(2,"java入门"),new book(3,"论语")};
    int ways;//输入的方法
    String s1;//输入的图书名字
    int num;//输入的图书序号

    public static void main(String[] args) {
        Library l=new Library();
        System.out.println("请输出查找方法,1 按照书名查找     2 按照序号查找");
        Scanner scan=new Scanner(System.in);    
        for(int i=1;i>0;i++)
        {   
            Scanner scan2=new Scanner(System.in);
            if(scan2.hasNextInt())
            {
                l.ways=scan2.nextInt();
                i=-i;
            }
            else
            {
                System.out.println("请输入正确的数字格式");
            }
        }       

        if(l.ways==1)
        {
            System.out.println("请输入图书的名字");
            for(int i=1;i>0;i++)
            {
                try
                {
                    Scanner scan1=new Scanner(System.in);
                    if(scan1.hasNextInt())//判断是整型
                    {
                        l.test1();//利用test抛出异常                  
                    }
                    else
                    {                       
                        l.s1=scan1.nextLine();//注意先进行判断然后在进行赋值操作        
                        i=-i;
                    }
                }catch(Exception e)
                {
                    System.out.println("请输入正确的图书名字");
                }

            }   

            for(int i=0;i<l.books.length;i++)
            {
                if(l.books[i].name.equals(l.s1))
                {
                    System.out.println("您已经成功借出《"+l.s1+"》 哈哈 ");
                    break;
                }
                if(i==l.books.length-1)
                {
                    System.out.println("对不起,没有您想要的书目 ");
                }
            }//输入的书名需要遍历馆内已有图书的名字,所以在判断条件时增加了一个for
        }

        else if(l.ways==2)
        {
            System.out.println("请输入图书的编号");
            for(int i=1;i>0;i++)
            {                   
                try
                {
                    Scanner scan1=new Scanner(System.in);
                    if(scan1.hasNextInt())
                    {
                        l.num=scan1.nextInt();
                        if(l.num>0&&l.num<l.books.length+1)
                        {
                            System.out.println("已经成功借出《"+books[l.num-1].name+"》 啊哈哈");
                            i=-i;
                        }
                        else
                            l.test1();
                    }
                    else
                        l.test1();//抛出异常
                }catch(Exception e)
                {
                    System.out.println("请输入正确的数字格式");
                }

            }       
        }//第二种选择方式仅仅需要对比序号即可,直接在try当中进行判断

    }   
    public void test1() throws Exception
    {
        throw new Exception();
    }

}
打开App,阅读手记
4人推荐
发表评论
随时随地看视频慕课网APP

热门评论

那个可能是没有关闭scanner,引起内存泄漏的问题。我试了关闭,可是程序会一直循环。不过咱们还没有仔细学习scanner类,不必纠结于此。本次终点是异常处理的部分,会用就好。不知回答的满意不~

我调试的时候发现第12行和第13行有错误。

欢迎各位幕有给出修改意见或个人建议

查看全部评论