enum是計算機程式語言中的一種數據類型。枚舉類型:在實際問題中,有些變數的取值被限定在一個有限的範圍內。例如,一個星期內只有七天,一年只有十二個月,一個班每周有六門課程等等。如果把這些量說明為整型,字元型或其它類型顯然是不妥當的。為此,C語言提供了一種稱為“枚舉”的類型。在“枚舉”類型的定義中列舉出所有可能的取值,被說明為該“枚舉”類型的變數取值不能超過定義的範圍。應該說明的是,枚舉類型是一種基本數據類型,而不是一種構造類型,因為它不能再分解為任何基本類型。
基本介紹
- 中文名:枚舉
- 外文名:ENUM
- 類屬:數據類型
- 所屬學科:計算機
- 套用領域:計算機編程
定義說明
enum weekday{sun,mon,tue,wed,thu,fri,sat};enum weekday a,b,c;//或者為:enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b,c;//或者為:enum{sun,mon,tue,wed,thu,fri,sat}a,b,c;
記憶體空間
賦值和使用
a=(enum weekday)2;
a=tue;
輸出結果:1 monday 2 tuesday 3 wendsday 4 thursday 5 friday6 saturday 7 sunday 8 monday 9 tuesday 10 wendsday11 thursday 12 friday 13 saturday 14 sunday 15 monday16 tuesday 17 wendsday 18 thursday 19 friday 20 saturday21 sunday 22 monday 23 tuesday 24 wendsday 25 thursday26 friday 27 saturday 28 sunday 29 monday 30 tuesday
enum course{begin,then,end};
enum course{e_begin,e_then,e_end};
用法
public enum Season{winter,spring,summer,fall};
public interface Season{static winter = 0;static spring = 1;//etc..}
EnumDemo.javapackage net.javagarage.enums;/*We can loop over the values we put into the enumusing the values() method.Note that the enum Seasons is compiled into aseparate unit,called EnumDemo$Seasons.class*/public class EnumDemo{/*declare the enum and add values to it.note that,like in#,we don't sea‘;’toend this statement and we use commas to separate the values*/private enum Seasons{winter,spring,summer,fall}//listthevaluespublic static void main(String[]args){for(Seasons s:Seasons.values()){System.out.println(s);}}}
package net.javagarage.enums;/*File:EnumSwitch.javaPurpose:show how to switch against the values in an enum.*/public class EnumSwitch{private enum Color{red,blue,green}//list the valuespublic static void main(String[]args){//refer to the qualified valuedoIt(Color.red);}/*note that you switch against the UNQUALIFIED name.that is,"caseColor.red:"is acompiler error*/private static void doIt(Color c){switch(c){case red:System.out.println("valueis"+Color.red);break;case green:System.out.println("valueis"+Color.green);break;case blue:System.out.println("valueis:"+Color.blue);break;default:System.out.println("default");}}}