青锋qf
2016-04-15 20:29
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;
}
}
}
我也是这种情况,必须把鼠标移到下一行才行
我记得输入中文容易出问题,最好是把要输入的字复制过去。

虽然不知道什么问题,但是输入时光标移到下一行输入就能正确显示了。
Java入门第三季
409776 学习 · 4546 问题
相似问题