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

交作业了,萌新求指教。

package mytest;


import java.util.Scanner;


public class Hdl {

static String s[]=new String[]{"高数","大学英语","政治","java"};

public static void main(String[] args) {

// TODO 自动生成的方法存根

Choose();

}

public static void Choose(){

System.out.println("输入命令:1—按照名称查找图书;2-按照序号查找图书");

try{

Scanner sc=new Scanner(System.in);

    int i=sc.nextInt();

    if(i==1){

System.out.println("输入图书名称:");

tushu();

}else if(i==2){

System.out.println("请输入序号:");

xuhao();

}else {

System.out.println("输入的命令有误,请根据提示输入数字!");

Choose();

}

    }catch(Exception e){

     

    }

}

public static void tushu(){

try{

Scanner a=new Scanner(System.in);

    String x=a.nextLine();

    Name(x);

        if(x.equals(s[0])){

System.out.println("book:"+s[0]);}

else if(x.equals(s[1])){

System.out.println("book:"+s[1]);}

else if(x.equals(s[2])){

            System.out.println("book:"+s[2]);}

else if(x.equals(s[3])){

                     System.out.println("book:"+s[3]);

}

}catch(Exception e){

System.out.println(e.getMessage());

Choose();

}

}

public static void xuhao(){

try{

Scanner b=new Scanner(System.in);

    int y=b.nextInt();

    Number(y);

if(y==1){

System.out.println("book:"+s[0]);}

else if(y==2){

System.out.println("book:"+s[1]);}

else if(y==3){

            System.out.println("book:"+s[2]);}

else if(y==4){

                     System.out.println("book:"+s[3]);

    }


}catch(Exception e){

System.out.println(e.getMessage());

Choose();

}

}

public static String Name(String x)throws Exception{

if(!(x.equals(s[0]))&&!(x.equals(s[1]))&&!(x.equals(s[2]))&&!(x.equals(s[3]))){

throw new Exception("图书不存在");

}

return x;

}

public static int Number(int y)throws Exception{

if(y<1^y>4){

throw new Exception("图书不存在");

}

return y;

}

}


正在回答

1 回答

我碰巧看到了,那我就指出一下美中不足的地方吧,首先源码缺乏对于输入输出流的关闭,其次呢if else过多,如果能够将大量的if else都用异常来处理就好了。然后呢,关于字符串匹配好像可以用现成的库方法调用

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

交作业了,萌新求指教。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信