7-2 jmu-Java-02基本語法-06-枚舉 (3 分)
定義一個枚舉類型Grade來表示考試的4個等級,值包含A,B,C,D,E
編寫一個函數Grade getGrade(int score)
將傳遞進來的score轉化爲枚舉類型
>=90 and <=100返回A,
>=80 and <90 返回B,
>=70 and <80 返回C,
>=60 and <70返回D,
其他的返回E
main方法
輸入分數後,調用getGrade函數返回相應的Grade,使用switch根據Grade,根據分數打印不同的評價:Excellent Good Average Fair Poor
並且每輸出一個評語後,要調用如下函數
public static void printGradeInfo(Grade grade){
System.out.println("class name="+Grade.class);
System.out.println("grade value="+grade);
}
輸入樣例:
90
80
70
60
輸出樣例:
Excellent
class name=class Grade
grade value=A
Good
class name=class Grade
grade value=B
Average
class name=class Grade
grade value=C
Fair
class name=class Grade
grade value=D
分析:枚舉類是一個數據類別,而不是一個類,這點需要注意,而且枚舉類別不能像其他類型一樣定義在函數體內,作爲本地類型來使用,這就是枚舉類型的一個特別之處,也就是說,枚舉類型是一個定義在其他類以外的類型,總體上看不像是一個類,而是一中數據類型,因爲它裏面不能自定義函數,也不具有構造方法,但是有着類一樣的結構還有方法調用,這裏基本理解使用方法即可
(public) enum 枚舉類型名稱{ 枚舉對象1,枚舉對象2,枚舉對象3... }//內直接寫對象名稱,不用考慮類型
如:
public enum gender{
Male,Female
}//這樣就是定義了一個枚舉類型gender,這個類型裏只有男性和女性兩個值而沒有其他類型,這樣的設計通常會去迎合一些特殊要求
這之後就可以直接使用了,調用枚舉類型中的內容的方式和調用方法有點像,即有:
gender.Male
這樣就可以返回出Male這個屬性值了。
而這個題目的基本草稿也可以這樣寫出:
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
System.out.println(getGrade(score));
sc.close();
}
public static Grade getGrade(int score){
if(score>=90&&score<=100){
return Grade.A;//返回值類型爲這個枚舉類型,那麼就需要使用枚舉類型中的值來返回
}
else if(score>=80&&score<90){
return Grade.B;
}
else if(score>=70&&score<80){
return Grade.C;
}
else if(score>=60&&score<70){
return Grade.D;
}
else {
return Grade.E;
}
}
}
enum Grade{//定義枚舉類
A,B,C,D,E;
}
這裏簡單介紹了枚舉類型的方法,包括定義方法與基本使用方法,而具體的各種高級使用,以後會慢慢分析介紹。