亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

交作業了!??!

package exception_demo;

import java.util.Scanner;

public class Book {


public static void main(String[] args) {

// TODO Auto-generated method stub

Book bookObj = new Book();

bookObj.init();

}

public void init() {

String[] books = {"java","php","python","go"};

int type;

String BookName;

try {

type = searchType();

if(type == 1) {

BookName = searchBookName(books);

}else {

BookName = searchBookNum(books);

}

System.out.println("book:"+BookName);

}catch(BookException e) {

System.out.println(e.getMessage());

init();

}catch(Exception e) {

System.out.println(e.getMessage());

init();

}

}

//通過哪種類型選擇圖書

public int searchType() throws BookException {

Scanner input = new Scanner(System.in);//創建scanner對象

System.out.print("請輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書");

int type = input.nextInt();

if(type == 1 || type == 2) {

return type;

}else{

throw new BookException("命令輸入錯誤!請根據提示輸入數字命令!");

}

}

//通過名稱查找

public String searchBookName(String[] books) throws Exception {

Scanner input = new Scanner(System.in);//創建scanner對象

System.out.println("請輸入圖書名稱:");

String BookName = input.next();

for(String book :? books) {

if(book.equals(BookName)) {

return BookName;

}

}


throw new Exception("圖書不存在!");

}

//通過序號查找

public String searchBookNum(String[] books) throws Exception {

Scanner input = new Scanner(System.in);//創建scanner對象

System.out.println("請輸入圖書序號:");

int BookNum = input.nextInt();

if(BookNum < books.length && BookNum >= 0) {

return books[BookNum-1];

}

throw new Exception("圖書不存在!");

}


}



package exception_demo;

public class BookException extends Exception{

public BookException(String message) {

super(message);

}

}


正在回答

2 回答

兄弟 我試了一下你的代碼,有個問題

下面這段里,當我int type輸入非數字時,比如我控制臺打一個a,為什么沒有報InputMismatchException,你的代碼運行結果是顯示null,然后重新開始,這個我想不通啊


//通過哪種類型選擇圖書

public int searchType() throws BookException {

Scanner input = new Scanner(System.in);//創建scanner對象

System.out.print("請輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書");

int type = input.nextInt();

if(type == 1 || type == 2) {

return type;

}else{

throw new BookException("命令輸入錯誤!請根據提示輸入數字命令!");

}

}


0 回復 有任何疑惑可以回復我~

這個是不是沒法實現報錯之后重新輸入?

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

慕瓜7049329

我錯了。。。原來還可以這樣 init()里面再init()
2020-03-13 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409766    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

交作業了?。?!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號