第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

作業(yè)。scanner怎么不能關(guān)閉

package try_catch;

import java.util.Scanner;

public class TryCatchPractice2 {

//在類開始聲明,則其他方法都能調(diào)用

Scanner in=new Scanner(System.in);

NoBookException NoB=new NoBookException();

String[] books={"語文","數(shù)學(xué)","英語"};

static TryCatchPractice2 trycat=new TryCatchPractice2();

//主函數(shù)

public static void main(String[]args) throws Exception{

trycat.InputClassException();

}

//命令錯誤

public void InputClassException()throws Exception{

????try{

????????System.out.println("歡迎光臨本圖書管理系統(tǒng)");

????????System.out.println("1.書名查詢。2.序號查詢");

????????int a=in.nextInt();

????????switch(a){

????????????case 1: //查找圖書

????????????????trycat.findBooks();

????????????break;

????????????case 2://查找序號

????????????????trycat.findBooksNum();

????????????break;

????????????default:

????????????????throw new NoBookException("錯誤命令,請輸入整數(shù)1或2");//如果輸入數(shù)字非1,2則拋出

???????????}

????}catch(NoBookException e){

// InputMismatchException InE=new InputMismatchException();

// InE.initCause(e);

// 求教如何在掃描儀我輸入非int型時會提示錯誤命令,例如a

????????e.printStackTrace();

????????System.out.println("請重新輸入:");

????????InputClassException();

????}catch(Exception e){

????????backRoll();

????}

????}

//當(dāng)輸入值為非整數(shù)時,調(diào)用此方法//不要問我為什么另外新建一個方法,只是因為提示變紅字

public void backRoll() throws Exception{

???? try{

???????? throw new Exception("錯誤命令,請輸入整數(shù)");

???? }catch(Exception e){

???? ???? e.printStackTrace();

???? ???? in.next();

???? ???? System.out.println("請重新輸入:");

???????? InputClassException();

???? }

}

//查找圖書

public void findBooks()throws Exception{

????System.out.println("請輸入您要查詢的圖書:");

????String b=in.next();

????boolean flag=false;

????try{

???????? for(int i=0;i<books.length;i++){

???????????????? if(b.equals(books[i])){//如果查詢的書名不為空,輸出書本信息

???????????????? System.out.println("查詢成功"+books[i]);

???????????????? flag=true;

???????????????? }

????????????}

????????????while(flag==false){//如果查詢?yōu)榭?,拋出異?/p>

????????????throw new NoBookException("圖書不存在");

????????????}

????}catch(NoBookException e){

????????e.printStackTrace();//捕捉到異常后輸出異常位置

????????NoB.initCause(e);

????????System.out.println("請重新輸入:");

????????InputClassException();//重新進入系統(tǒng)

????}

}

//查找序號

????public void findBooksNum()throws Exception{

???? System.out.println("請輸入您要借閱的圖書序號:");

???? int i=in.nextInt();

???? try{

???????? if(i<books.length&&i>=0){//如果查詢的序號不越界,輸出書本信息

???????????? System.out.println("查詢成功");

???????????? System.out.println("您查詢的是"+books[i]);

???????? }else{//越界則拋出數(shù)組越界異常

???????????? throw new NoBookException("序號錯誤");

???????? }

???? }catch(NoBookException e){

???????? e.printStackTrace();//捕捉到異常后輸出異常位置

???????? NoB.initCause(e);

???????? System.out.println("請重新輸入:");

???????? InputClassException();//重新進入系統(tǒng)

???? }

????}

//in.close();//為什么這里打in.close.關(guān)閉掃描儀會報錯

}



正在回答

1 回答

代碼沒有用代碼語言格式上傳確實有點閱讀困難,沒有全部仔細看完實在不好意思。但是我個人也遇到類似問題,查了相關(guān)資料有些見解,希望能夠解答你的問題。

首先,Scanner對象在關(guān)閉時,也會自動調(diào)用它的輸入流進行關(guān)閉,也就是scanner.close()的時候,會導(dǎo)致System.in的關(guān)閉。所以scanner不能再次獲取輸入。所以建議是:全局使用一個scanner對象,并且只在整個程序運行結(jié)束的時候只關(guān)閉一次scanner。

具體的可以參考這篇博客,我覺得記載得很詳細。scanner注意要項

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學(xué)習(xí)       409768    人
  • 解答問題       4510    個

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

進入課程

作業(yè)。scanner怎么不能關(guān)閉

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號