尚學堂JAVA300集 第六章 異常機制-----編碼題答案
阿新 • • 發佈:2018-12-09
本編碼答案為本人個人編輯,僅供參考,用的簡單方式。
三、編碼題
- 編寫程式接收使用者輸入分數資訊,如果分數在0—100之間,輸出成績。如果成績不在該範圍內,丟擲異常資訊,提示分數必須在0—100之間。
要求:使用自定義異常實現。
程式碼如下:
import java.util.Scanner;
public class TestCode1 {
public static void main(String[]args) {
System.out.println("請輸入分數");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// System.out.println("step1");
try {
// System.out.println("step2");
if(num<1||num>100) {
throw new Exception("分數必須在1-100之間");
}
System.out.println("您輸入的分數是"+num);
} catch (Exception e) {
// TODO Auto-generated catch block
// System.out.println("step3");
e.printStackTrace();
}finally {
sc.close();
}
}
}
2.寫一個方法void isTriangle(int a,int b,int c),判斷三個引數是否能構成一個三角形, 如果不能則丟擲異常IllegalArgumentException,顯示異常資訊 “a,b,c不能構成三角形”,如果可以構成則顯示三角形三個邊長,在主方法中得到命令列輸入的三個整數, 呼叫此方法,並捕獲異常。 程式碼如下:
import java.util.Scanner;
public class TestCode2 {
public static void main(String[]args) throws Exception {
System.out.println("請輸入三角形的三個邊長:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
isTriangle(a,b,c);
}
static void isTriangle(int a,int b,int c) throws Exception {
try {
if((a+b)<=c || (a+c)<=b || (b+c)<=a ) {
throw new Exception("a,b,c不能構成三角形");
}else {
System.out.println("構成的三角形的邊長分別為:\na="+a+"\tb="+b+"\tc="+c);
}
}finally {
}
}
}
3.編寫一個計算N個學生分數平均分的程式。程式應該提示使用者輸入N的值,如何必須輸入所有N個學生分數。如果使用者輸入的分數是一個負數,則應該丟擲一個異常並捕獲,提示“分數必須是正數或者0”。並提示使用者再次輸入該分數。 程式碼如下:
import java.util.Scanner;
public class TestCode3 {
public static void main(String[]args) {
//n: 確定學生數目
System.out.println("請輸入學生數目:");
Scanner sc1 = new Scanner(System.in);
int n = sc1.nextInt();
System.out.println("請依次輸入學生成績:");
Scanner sc2 = new Scanner(System.in);
int[] f = new int[n]; //f: 定義學生成績的數目
long sum =0;
for(int i=0; i<n; i++) {
f[i] = sc2.nextInt();
judge(f[i]);
sum +=f[i];
}
double ave = (double)sum/n;
System.out.println("學生的平均成績為:"+ave);
}
static void judge(int i) {
try {
if(i<0) {
throw new Exception("分數必須是正數或者0");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
}
}
}