1.6 Java项目实战:计算平均成绩
編寫(xiě)一個(gè)程序,根據(jù)用戶輸入的總?cè)藬?shù)和總成績(jī)計(jì)算平均成績(jī)。要求程序能夠處理總?cè)藬?shù)或者總成績(jī)不是數(shù)字時(shí)的情況。
使用多重 catch 語(yǔ)句時(shí),Java 虛擬機(jī)會(huì)把實(shí)際拋出的異常對(duì)象依次和各個(gè) catch 代碼塊中聲明的異常類型匹配,如果異常對(duì)象為某個(gè)異常類型或者其子類的實(shí)例,就執(zhí)行該 catch 代碼塊,而跳過(guò)其它的 catch 代碼塊。具體實(shí)現(xiàn)代碼如下:
import java.util.InputMismatchException; import java.util.Scanner; public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);try {System.out.println("請(qǐng)輸入班級(jí)總?cè)藬?shù):");int count = input.nextInt();System.out.println("請(qǐng)輸入總成績(jī):");int score = input.nextInt();int avg = score / count; // 獲取平均分System.out.println("本次考試的平均分為:" + avg);} catch (InputMismatchException e1) {System.out.println("輸入數(shù)值有誤!");} catch (ArithmeticException e2) {System.out.println("輸入的總?cè)藬?shù)不能為0!");} catch (Exception e3) {e3.printStackTrace();System.out.println("發(fā)生錯(cuò)誤!" + e3.getMessage());}} }如上述代碼,在 main() 方法中使用了多重 catch 語(yǔ)句來(lái)捕獲各種可能發(fā)生的異常,包括 InputMismatchException 異常、ArithmeticException 異常以及其他類型的異常。
當(dāng)用戶輸入的總?cè)藬?shù)或者總成績(jī)不為數(shù)值類型時(shí),程序?qū)伋?InputMismatchException 異常,從而執(zhí)行第 15 行代碼,輸出結(jié)果如下所示:
請(qǐng)輸入班級(jí)總?cè)藬?shù): 50 請(qǐng)輸入總成績(jī): 1250a 輸入數(shù)值有誤! 請(qǐng)輸入班級(jí)總?cè)藬?shù): 50a 輸入數(shù)值有誤!當(dāng)輸入的總?cè)藬?shù)為 0 時(shí),計(jì)算平均成績(jī)就會(huì)出現(xiàn)被除數(shù)為 0 的情況,此時(shí)會(huì)拋出 ArithmeticException 異常,從而執(zhí)行第 17 行代碼,輸出結(jié)果如下所示:
請(qǐng)輸入班級(jí)總?cè)藬?shù): 0 請(qǐng)輸入總成績(jī): 100 輸入的總?cè)藬?shù)不能為0!如下所示的是當(dāng)輸入的總?cè)藬?shù)和總成績(jī)均為正常數(shù)值類型時(shí)的輸出結(jié)果:
請(qǐng)輸入班級(jí)總?cè)藬?shù): 50 請(qǐng)輸入總成績(jī): 1250 本次考試的平均分為:25總結(jié)
以上是生活随笔為你收集整理的1.6 Java项目实战:计算平均成绩的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.5 try catch语句详解
- 下一篇: 1.7 Java try catch f