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

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

其實還不太清楚是什么時候用異常處理,什么時候直接寫用if條件判斷處理掉?

import?java.util.*;

/**
?*?借書系統
?*?@author?ppcc
?*
?*/
public?class?Library?{
	/**
	?*?字符串數組存放圖書信息
	?*/
	String[]?bookArr;
	
	/**
	?*?輸入
	?*/
	Scanner?sc=new?Scanner(System.in);
	
	/**
	?*?構造函數
	?*/
	public?Library(){
		//將圖書信息存入數組
		bookArr=new?String[]{"高數","數據結構","操作系統","C語言"};
	}
	
	/**
	?*?主菜單
	?*/
	?public?void?menuMain(){
		//提示語句
		System.out.println("1-按名稱查找圖書\t2-按序號查找圖書");
	????System.out.print("輸入命令:");
		try{
			//用戶輸入選擇菜單
			int?sel=sc.nextInt();
			//選擇按名稱查找圖書
			if(sel==1)?searchByName();
			//按序號查找圖書
	????????????????else?if(sel==2)?searchById();
			//輸入除1和2以外的數字
			else?System.out.println("命令輸入錯誤!請選擇1或2");
		}catch(InputMismatchException?e){
			//輸入不是數字,提示出錯
			System.out.println("命令輸入錯誤!請根據提示輸入數字命令");
		
		}finally{
			sc=new?Scanner(System.in);
			//返回主界面
			System.out.println("");
			menuMain();
		}
	}

	/**
	?*?按序號查找圖書子菜單
	?*/
	private?void?searchById()?{
		//提示語句
		System.out.print("輸入圖書序號:");
		try{
			//用戶輸入圖書序號
			int?id=sc.nextInt();
			//無異常輸出圖書
			System.out.println("Book:"+bookArr[id]);
		}catch(InputMismatchException?e){
			//輸入不為數字,提示出錯
			System.out.println("命令輸入錯誤!請根據提示輸入數字命令!");
		}
		catch(ArrayIndexOutOfBoundsException?e){
			//輸入不存在的序號,提示結果
			System.out.println("不存在該圖書!");
		}
	}
	
	/**
	?*?按名稱查找圖書子菜單
	?*/
	private?void?searchByName()?{
		//提示
		System.out.print("輸入圖書名稱:");
		//查詢到的書
		String?findBook=null;
		//書名
		String?name=sc.next();
		//for循環匹配是否存在這本書
		for(int?i=0;i<bookArr.length;i++){
			//找到這本書
			if(bookArr[i].equals(name)){
				findBook=bookArr[i];
				break;
			}
		}
		//找不到書
		if(findBook==null)?System.out.println("不存在該書");
		//輸出找到的書信息
		else?System.out.println("Book:"+findBook)	
	}
	
	/**
	?*?主函數
	?*?@param?args
	?*/
	public?static?void?main(String[]?args)?{
????????????Library?library=new?Library();
	????????library.menuMain();
	}
}


正在回答

1 回答

java提供異常處理機制,在有可能會拋出異常的地方使用異常去處理,比如例程中當捕獲到輸入異?;蛘邤到M下標越界異常時,就需要去處理,無論是提示信息也好,還是進一步做業務處理,對于程序員來說,就能作為主動方直觀地明白程序到底是怎么運行的,遇到了什么問題等等。而if判斷常用于處理業務邏輯,而且最好是if else成對出現,使代碼更加直觀,也避免了漏掉某種可能出現的結果。

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

舉報

0/150
提交
取消

其實還不太清楚是什么時候用異常處理,什么時候直接寫用if條件判斷處理掉?

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

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

幫助反饋 APP下載

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

公眾號

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