package com.imooc_1; import java.util.Scanner; public class BorrowBooks { public static Scanner sc = new Scanner(System.in); /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String[] name = {"数据结构","大学英语","高数","网络工程","软件工程","毛概"}; while(true){ System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书"); String book; try{ int input = print(); switch(input){ case 1: book = getBookByName(name); System.out.println("book:"+book); break; case 2: book = getBookByNum(name); System.out.println("book:"+book); break; case -1: System.out.println("命令输入错误!请根据提示输入数字命令!"); sc = new Scanner(System.in); continue; default: System.out.println("命令输入错误!"); continue; } break; }catch(Exception e){ System.out.println(e.getMessage()); continue; } } } //按照图书名称查找 public static String getBookByName(String[] nameBooks) throws Exception{ System.out.println("请输入图书名称:"); String nameSearch = sc.next(); for(int i=0; i<nameBooks.length; i++){ if(nameSearch.equals(nameBooks[i])) return nameBooks[i]; } throw new Exception("图书不存在!"); } //按照图书序号查找 public static String getBookByNum(String[] namebooks) throws Exception{ while(true){ System.out.println("请输入图书序号:"); int num = print(); try{ if(num == -1){ System.out.println("命令输入错误!请根据提示输入数字命令!"); continue; } String book = namebooks[num-1]; return book; }catch(Exception e){ return "图书不存在"; } } } //输入命令,输入图书序号 public static int print(){ int x; try { x = sc.nextInt(); return x; } catch (Exception e) { // TODO: handle exception return -1; } } }
我也是这种情况,必须把鼠标移到下一行才行
我记得输入中文容易出问题,最好是把要输入的字复制过去。
虽然不知道什么问题,但是输入时光标移到下一行输入就能正确显示了。