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

代码分享。没使用异常处理方式,而是对输入类型进行判断。不知道这样有没有什么错误或者不好的行为习惯。

package stduy;


import java.util.Scanner;


public class BorrowBook {

public static String books[]= {"shengjing","lunyu","xiaorenshu"};

public static void main(String[] args) {

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

while(true) {

Scanner x=new Scanner(System.in);

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

if(x.hasNextInt()) {

int y=x.nextInt();

if(y==1) {

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

String z=x.next();

for(int a=0;a<books.length;a++) {

if(z.equals(books[a])) {

System.out.println("book:"+z);

System.exit(0);

}

else {

continue;

}

}

System.out.println("图书不存在.");

continue;

}

else if(y==2) {

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

if(x.hasNextInt()) {

int w=x.nextInt();

if(w<=books.length&&w>0) {

System.out.println("book:"+books[w-1]);

System.exit(0);

}

else {

System.out.println("图书不存在.");

continue;

}


}

else {

System.out.println("图书不存在");

}

continue;

}

else {

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

continue;

}

}

else {

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

continue;

}

}

}

}


正在回答

3 回答

  • 代码我还没有调试过,你自己参看一下,错了的改过来

public class BorrowBook {

    public static String books[] = {"shengjing", "lunyu", "xiaorenshu"};

    //程序入口
    public static void main(String[] args) {

      try {
          BookManager();
      }catch (Exception e){
          System.out.println(e.getMessage());
      }
    }

    //图书管理
    private static void BookManager() {
        while (true) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("输入命令1-按照名称查找图书;2-按照序号查找图书");
            if (scanner.hasNextInt()) {
                int command = scanner.nextInt();
                switch (command) {
                    case 1:
                        queryByBookName(scanner);
                        break;
                    case 2:
                        queryByBookIndex(scanner);
                        break;
                    default:
                        System.out.println("命令输入错误,请根据提示输入数字命令");
                }
            }
        }
    }

    //根据名字查询
    private  static  void queryByBookIndex(Scanner scanner) {
        if (scanner.hasNextInt()) {
            int index= scanner.nextInt();
            if (index <= books.length && index > 0) {
                System.out.println("book:" + books[index - 1]);
            } else {
                System.out.println("图书不存在.");
            }
        }
    }

    //根据 编号查询
    private  static  void queryByBookName(Scanner scanner) {
        System.out.println("请输入图书名称:");
        String bookName = scanner.next();
        for (int a = 0; a < books.length; a++) {
            if (bookName.equals(books[a])) {
                System.out.println("book:" + bookName);
                System.exit(0);
            }
        }
    }
}


0 回复 有任何疑惑可以回复我~
  • 一: 提问时麻烦把代码整理一下,方便别人看

  • 二:package stduy; 请命名规范 如 com.stduy

  • 三:一个方法 代码不要 超过 80行 你这个已经超出了,写的太难看,方法长了 应该拆分多个方法

  • 四:if,for,while 下面不要套太多的 (条件,循环,判断),影响代码可读写

  • 五:最上层 一般要 try catch 不然程序就挂了

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


import java.util.Scanner;


public class BorrowBook {

    public static String books[] = {"shengjing", "lunyu", "xiaorenshu"};

    public static void main(String[] args) {

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

        while (true) {

            Scanner x = new Scanner(System.in);

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

            if (x.hasNextInt()) {

                int y = x.nextInt();

                if (y == 1) {

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

                    String z = x.next();

                    for (int a = 0; a < books.length; a++) {

                        if (z.equals(books[a])) {

                            System.out.println("book:" + z);

                            System.exit(0);

                        } else {

                            continue;

                        }

                    }

                    System.out.println("图书不存在.");

                    continue;

                } else if (y == 2) {

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

                    if (x.hasNextInt()) {

                        int w = x.nextInt();

                        if (w <= books.length && w > 0) {

                            System.out.println("book:" + books[w - 1]);

                            System.exit(0);

                        } else {

                            System.out.println("图书不存在.");

                            continue;

                        }


                    } else {

                        System.out.println("图书不存在");

                    }

                    continue;

                } else {

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

                    continue;

                }

            } else {

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

                continue;

            }

        }

    }

}


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

举报

0/150
提交
取消

代码分享。没使用异常处理方式,而是对输入类型进行判断。不知道这样有没有什么错误或者不好的行为习惯。

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