计算平均成绩
根據用戶輸入的總人數和總成績計算平均成績。要求程序能夠處理總人數或者總成績不是數字時的情況。
使用多重 catch 語句時,Java 虛擬機會把實際拋出的異常對象依次和各個 catch 代碼塊中聲明的異常類型匹配,如果異常對象為某個異常類型或者其子類的實例,就執行該 catch 代碼塊,而跳過其它的 catch 代碼塊。代碼如下:
import java.util.InputMismatchException; import java.util.Scanner;public class Test03 {public static void main(String[] args) {Scanner input = new Scanner(System.in);try {System.out.println("請輸入班級總人數:");int count = input.nextInt();System.out.println("請輸入總成績:");int score = input.nextInt();int avg = score / count; // 獲取平均分System.out.println("本次考試的平均分為:" + avg);} catch (InputMismatchException e1) {System.out.println("輸入數值有誤!");} catch (ArithmeticException e2) {System.out.println("輸入的總人數不能為0!");} catch (Exception e3) {e3.printStackTrace();System.out.println("發生錯誤!" + e3.getMessage());}} }如上述代碼,在 main() 方法中使用了多重 catch 語句來捕獲各種可能發生的異常,包括 InputMismatchException 異常、ArithmeticException 異常以及其他類型的異常。
當用戶輸入的總人數或者總成績不為數值類型時,程序將拋出 InputMismatchException 異常,從而執行第 15 行代碼,輸出結果如下所示:
請輸入班級總人數: 50 請輸入總成績: 1250v 輸入數值有誤! 請輸入班級總人數: 50v 輸入數值有誤!當輸入的總人數為 0 時,計算平均成績就會出現被除數為 0 的情況,此時會拋出 ArithmeticException 異常,從而執行第 17 行代碼,輸出結果如下所示:
請輸入班級總人數: 0 請輸入總成績: 100 輸入的總人數不能為0!如下所示的是當輸入的總人數和總成績均為正常數值類型時的輸出結果:
請輸入班級總人數: 5 請輸入總成績: 500 本次考試的平均分為:100總結