天天看點

C語言----枚舉(進階篇二十四)

  枚舉的作用

    有一種變量類型,它的值隻有固定的幾種選擇之一,比如性别(男、女)、硬币的兩面(正、反)、星期(周一到周日)、居住省份(36個省市自治區名稱)等等,這樣的變量适合用enum枚舉類型。

  使用枚舉

    說明:

    ※自定義的類型一般都放在main函數前面,枚舉也遵循這個規律:

    enum sex{boy,girl};

    main(){…}  

    ※枚舉類型在定義時,系統會自動用整數為枚舉的可用值從0開始用整數進行編号,如上面的boy的值為0,girl為1,也可以用printf(“%d”,gril)這樣的語句輸出。

    枚舉值也可以叫做“符号常量”,有時候用英文單詞組成的符号常量來代替簡單的數字,會使程式的可讀性大大提高。比如我們看到boy第一反應這就是男孩,而你看到數字0,并不知道這表示什麼意思。

      可以通過指派來改變枚舉常量的值:

      enum color{red=4,green=1,blue,black};

      這條語句中從blue開始會自動往後遞增,blue的值為2,black為3。

    ※不能給枚舉常量指派,比如boy=2,這是錯誤的寫法。

    ※枚舉常量相當于一個關鍵字,程式中不得出現與枚舉常量相同的辨別符。

    ※枚舉支援所有的邏輯運算,也可以遞增遞減,比如上面的枚舉類型color值為green,color++就得到blue,color+=2就得到black。有了這個規律,我們就用循環來處理枚舉變量就非常友善。

    程式1

      箱子裡有3種不同顔色(紅綠藍)的乒乓球若幹個,請任意摸3個,如果摸到2個相同顔色的為二等獎,獎金1元,摸到3個相同顔色的為一等獎,獎金10元。

    枚舉常量不支援直接的輸入輸出,是以,枚舉變量經常會跟swith聯用而達到直覺的文字輸出效果。

    我國規定周六和周日雙休日,請輸入一個星期幾,由程式判斷并輸出這一天是否是休息日。