各位大神:交流下作业心得,烦请大家提提意见

来源:1-9 经验总结

慕慕4533638

2016-06-22 19:34

各位大神:交流下作业心得,烦请大家提提意见!

以下为源文件:
package three1;

import java.util.InputMismatchException;
import java.util.Scanner;

import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;

public class LibrarySystem {

	// 图书馆现有书目
	private String[] books = {"高数","大物","英语"};
	
	// 按序号查找图书
	public void findABook( int num ){
		try{
			System.out.println("book:" + books[num]);
		}catch (InputMismatchException e){
			System.out.println("命令输入错误!请根据提示输入数字命令!");
		}
		catch (ArrayIndexOutOfBoundsException e){
			System.out.println("图书不存在!");
		}
	}
	
	// 按书名查找图书
	public boolean findABook( String bookName ){
		for( String book:books){
			if(book.equalsIgnoreCase(bookName)){
				System.out.println("book:" + book);
				return true;
			}
		}
		System.out.println("图书不存在!");
		return false;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LibrarySystem ls = new LibrarySystem();
		
		Scanner sc = new Scanner(System.in);
		while(sc != null){ 
			System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书。");
			
			try{
				int commandNum = sc.nextInt();
				sc.nextLine();
				switch (commandNum) {
					case 1:
						System.out.println("输入图书名称:");
						String bookName = sc.nextLine();
						ls.findABook(bookName);
						break;
					case 2:
						System.out.println("输入图书序号:");
						int bookNum = sc.nextInt();
						sc.nextLine();
						ls.findABook(bookNum);
						break;
					default:
						//输入整数范围有误,抛出异常
						throw new Exception("0命令输入错误!请根据提示输入数字命令!");
				}
			}catch(InputMismatchException e){
				System.out.println("命令输入错误!请根据提示输入数字命令!");
				sc.nextLine();
			}catch (Exception e){
				//e.printStackTrace();
				System.out.println("命令输入错误!请根据提示输入数字命令!");
			}
		}
	}
}


写回答 关注

4回答

  • 雪中_悍刀行
    2016-07-21 17:28:48

    怎么没用throws申明异常,就直接用throw抛出异常了?

  • qq_随想之风_03202251
    2016-07-15 16:28:34

    ls.findABook(bookNum);这句话的意思是?


    慕慕4533...

    就是调用ls的对象方法findABook(),用来实现按照图书序号来查找图书。

    2016-07-19 16:38:39

    共 1 条回复 >

  • bartqq
    2016-06-30 11:35:23

    sc.nextLine();这是什么意思?

    qq_asd...

    是Scanner中的一个方法,表示获取键盘输入的一整行,包括空格

    2016-07-11 10:35:16

    共 1 条回复 >

  • android感染
    2016-06-22 20:08:25

    嗯,运用的很棒!

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题