枚舉

枚舉

1. 需求

  • 舉個例子,好比:一星期有7天,請定義數據表示星期一到星期天

1.1 傳統方法

  • 使用#define 來完成spring

    • define MON 1

    • define TUE 2

    • define WED 3

    • define THE 4

    • define FRI 5

    • define SAT 6

    • define SUN 7

  • 分析:看起來代碼量較多,且很差管理code

2 . 基本介紹

  • 枚舉是C語言的一種構造數據類型,它能夠讓數據更簡潔,更易讀,對於只有幾個有限的特定數據,能夠使用枚舉
  • 枚舉對應英文(enumeration 簡寫 enum)
  • 枚舉是一組常量的集合,包含一組有限的特定的數據
  • 枚舉語法定義格式

enum 枚舉名 {枚舉元素1,枚舉元素2.........}get

3.快速入門

#include<stdio.h>
void main(){
    enum DAY{
        MON=1,TUE=2,WED=3,THU=4,FRI=5,SAT=6,SUN=7
    };//這裏DAY就是枚舉類型包含了7個枚舉元素
    enum DAY day;//enum DAY是枚舉類型,day是枚舉變量
    day = WED;//給枚舉變量day賦值,值就是某個枚舉元素
    printf("%d",day);
    getchar();
}

4 . 枚舉的遍歷

  • C語言中,枚舉類型是被看成int 或者unsigned int 類型來處理的,枚舉類型必須連續是能夠實現有條件的遍歷。如下實例使用for來遍歷枚舉的元素
enum DAY{
    MON=1,TUE,WED,THU,FRI,SAT,SUN//若是沒有賦值,就會按照順序賦值
}day;//表示定義了一個枚舉類型enum DAY,同時定義了一個變量day(類型是enum DAY)

int main(){
    //遍歷枚舉元素
    //day++會給出警告,可是能夠運行
    for(day=MON;day<=SUN;day++){//要求枚舉元素是連續賦值
        printf("枚舉元素:%d",day);
    }
    getchar();
    return 0;
}

5 . switch中使用枚舉

  • C語言中,switch中能夠使用枚舉類型
int main(){
    enum SEASONS{
        SPRING=1,SUMMER,AUTUMN,WINTER
    };//定義枚舉類型 enum SEASONS
    enum SEASONS season;//定義一個枚舉類型變量season(類型enum SEASONS)
    printf("請輸入你喜歡的季節:(1.spring 2.summer 3.autumn 4.winter):");
    scanf("%d",&season);
    switch(season){
        case SPRING:
            printf("你喜歡的季節是春天");
            break;
        case SUMMER:
            printf("你喜歡的季節是夏天");
            break;
        case AUTUMN:
            printf("你喜歡的季節是秋天");
            break;
        case WINTER:
            printf("你喜歡的季節是冬天");
            break;
        default:
            printf("沒有你喜歡的季節");
    }
    getchar();
    getchar();
    return 0;
}

6.枚舉類型使用注意事項和細節

  • 第一個枚舉成員的默認值爲整型的0,後續枚舉成員的值在前一個成員上加1
  • 在定義枚舉類型使改變枚舉元素的值
enum DAY{
    MON,TUE,WED,THE=9,TRI,SAT,SUN//若是沒有給賦值,就會按照順序賦值
}day;
//表示定義了一個枚舉類型enum DAY,同時定義了一個變量day
//說明 FRI SAT SUN 就是10 11 12
  • 枚舉變量的定義的形式:先定義枚舉類型,後定義枚舉變量
enum DAY{
    MON=1,TUE,WED,THE,TRI,SAT,SUN
};
enum DAY day;
  • 枚舉變量的定義形式2:定義枚舉類型的同時定義枚舉變量
enum DAY{
    MON=1,TUE,WED,THE,FRI,SAT,SUN
}day;
  • 枚舉變量的定義形式3:省略枚舉名稱,直接定義枚舉變量
enum{
    MON=1,TUE,WED,THE,FRI,SAT,SUN
}day;
//這樣使用枚舉,該枚舉只能使用一次
  • 不能夠將整數轉換爲對應的枚舉值
    • 不能直接將一個整數,賦給枚舉變量,可是能夠將整數轉成枚舉類型再賦給枚舉變量
int main(){
    enum SEASONS{SPRING=1,SUMMER,AUTUMN,WINTER};
    enum SEASONS season;
    int n=4;
    season = (enum SEASONS)n;
    printf("season=%d",season);
    getchar();
    rerurn 0;
}
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息