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

这两期视频最后每次做项目都不成功,该重头看还是继续之后再回头?

视频一点点看过来的,每个小结的案例都跟着做,事后也能自己写出来。但是一到最后的小项目就蒙了,大体思路有但是小的细节实现老是出错。

第三期的图书系统,我参照上一期的租车,做个book类给每本书序号sn和书名name,结果不懂怎么把输入书名inputName与每个book对象的name做循环判断。

看着别人的代码整体仿写,结果tyr-catch的时候无论try里面是否有问题,都会顺序走到catch里面,哪里的问题啊。。。

package com.imooc.LoanDesk;

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

public class LoanDesk {
	
	// Book[] b = {new Book(1,"数据结构"), new Book(2,"高等数学"), new Book(3,"Java核心1"), new Book(4,"Java核心2")};
	String[] book = {"数据结构", "高数", "Java核心技术卷一", "Java核心技术卷二"};
	
	// command()接受输入并返回1或2,不是整数抛出错误,不是1或2抛出错误
	public int command() throws Exception {
		
		int i;
		Scanner input = new Scanner(System.in);
		System.out.println("如何查找图书?1.按名称 2.按序号");
		try {
			i = input.nextInt();
		} catch (InputMismatchException e) {
			throw new InputMismatchException("请输入数字!程序结束!");
		}
		if ((i!=1) || (i!=2)) {
			throw new OtherException("请输入1或2!");
		}
		return i;
	}
	
	// searchName()接收先接受
	public void searchName() throws NoBookException {
		// Book a = new Book();
		System.out.print("请输入书名:");
		Scanner input = new Scanner(System.in);
		String name = input.nextLine();
		for (int i=0; i < book.length; i++) {
			if (name.equals(book[i])) {
				System.out.println("找到了!正在为《"+book[i]+"办理手续!");
				break;
			} 
			if (i == book.length) {
				throw new NoBookException("没有这本书。");
			}
		}
	}
	
	// searchSN()
	public void searchSN() throws NoBookException {
		Scanner input = new Scanner(System.in);
		int i = input.nextInt();
		if (i>0 && i<book.length) {
			System.out.println("找到了!正在为《"+book[i]+"》办理手续!");
		} else {
			throw new NoBookException("没有这么多书啊。。");
		}
	}
	
	// 主程序
	// 在while循环中,用command()询问并接受查找方式s
	// 询问并接收书名并调用searchName()获取结果or询问并接收序号并调用searchSN()获取结果
	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		LoanDesk ld = new LoanDesk();
		int s = 0; 
		
		while (true) {
			try {s = ld.command();} catch (Exception e) {System.out.println("输入错误,但是详情显示不出来!");}
			switch (s) {
			case 1: try {
					ld.searchName();
				} catch (NoBookException e) {
					e.printStackTrace();
					System.out.println("通过此书名找不到");
				} break;
			case 2: try {
					ld.searchSN();
				} catch (NoBookException e) {
					e.printStackTrace();
					System.out.println("通过此序号找不到");
				} 
			}
		}
		
	}
}


正在回答

1 回答

重新看,一定要扎实基础的!

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

昵称2_18位中英文 提问者

伤心。。搞懂第二期和第三期应该要多长时间啊?
2016-11-03 回复 有任何疑惑可以回复我~
#2

慕虎0955569 回复 昵称2_18位中英文 提问者

我也在学,建议不要只通过慕课学习
2016-11-05 回复 有任何疑惑可以回复我~
#3

昵称2_18位中英文 提问者 回复 慕虎0955569

昨天下单买了两本书head first java和疯狂java 你学java多久啦?
2016-11-05 回复 有任何疑惑可以回复我~
#4

慕虎0955569 回复 昵称2_18位中英文 提问者

我才断断续续学了1个月左右。。买了think in java
2016-11-05 回复 有任何疑惑可以回复我~
#5

慕虎0955569 回复 昵称2_18位中英文 提问者

哥,要不给我采纳一下,我需要积分
2016-11-06 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

这两期视频最后每次做项目都不成功,该重头看还是继续之后再回头?

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