问答详情
源自:1-9 经验总结

输入1,然后进入根据名称查找图书的时候,例如,输入 高数 ,为什么查不到啊?

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;
		}
	}
}


提问者:青锋qf 2016-04-15 20:29

个回答

  • 慕无忌5903725
    2017-12-08 16:44:16

    我也是这种情况,必须把鼠标移到下一行才行

  • 神经bean
    2016-04-18 18:01:26

    我记得输入中文容易出问题,最好是把要输入的字复制过去。

  • 森特
    2016-04-16 02:16:46

    http://img.mukewang.com/57112fc90001e7e102610090.jpg

    虽然不知道什么问题,但是输入时光标移到下一行输入就能正确显示了。