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

抛出不了异常。

求助:我这个程序的按照名称查找抛出不了异常。

package com.imooc.exception_test;

import java.util.Scanner;

public class Book {

	public static void main(String[] args) {
		// 用字符串数组保存书籍信息
		String[] book = { "数据结构", "Java实战开发", "html5", "javascript", "高等数学" };
		Book myBook = new Book();
		// 处理IO
		System.out.println("按照命令查找书籍:1-按照名称查找书籍;2-按照序号查找书籍");
		Scanner scanner1 = new Scanner(System.in);

		try {
			int k = scanner1.nextInt();
			if (k == 1) {
				System.out.println("请输入书籍的名字:");
				Scanner scanner2 = new Scanner(System.in);
				String c = scanner2.nextLine();
				myBook.findByname(c, book);
			}
			if (k == 2) {
				System.out.println("请输入书籍的序号");
				Scanner scanner3 = new Scanner(System.in);
				int c = scanner3.nextInt();
				myBook.findByIndex(c, book);
			}
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("命令输入错误,请按照提示输入数字命令");
		}

	}

	// 按名查找,抛出“书名不存在异常”
	public  void findByname(String input, String book[]) {
		try {
			for (int i = 0; i < book.length; i++) {
				if (book[i] == input) {
					System.out.println("book:" + book[i].toString());
				}
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.out.println("书名不存在异常");
		}
	}

	// 按序号查找,抛出“序号不存在异常”
	public  void findByIndex(int index, String book[]) {
		try {
			System.out.println("book:" + book[index].toString());
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.out.println("这本书的序号不存在异常!");
		}
	}
}


正在回答

1 回答

这里判断字符串的时候不要用==,要用equals去比较,将代码中40的==换成equals就可以了。这里并不是抛出异常,而是判断全部是false

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

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409779    人
  • 解答问题       4339    个

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

进入课程

抛出不了异常。

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