国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C++教程:什么是枚舉類型

2020-05-23 14:27:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
在基本的數(shù)據(jù)類型中,無(wú)外乎就是些數(shù)字和字符。但是某些事物是較難用數(shù)字和字符來(lái)準(zhǔn)確地表示的。比如一周有七天,分別是Sunday、Monday、Tuesday、Wednesday、Thursday、Friday和Saturday。如果我們用整數(shù)0、1、2、3、4、5、6來(lái)表示這七天,那么多下來(lái)的那些整數(shù)該怎么辦?而且這樣的設(shè)置很容易讓數(shù)據(jù)出錯(cuò),即取值超出范圍。我們能否自創(chuàng)一個(gè)數(shù)據(jù)類型,而數(shù)據(jù)的取值范圍就是這七天呢?

C++中有一種數(shù)據(jù)類型稱為枚舉(Enumeration)類型,它允許用戶自己來(lái)定義一種數(shù)據(jù)類型,并且列出該數(shù)據(jù)類型的取值范圍。

我們說(shuō)變量就好像是一個(gè)箱子,而數(shù)據(jù)類型就好像是箱子的類型,所以我們?cè)趧?chuàng)建某個(gè)枚舉類型的變量的時(shí)候,必須先把這個(gè)枚舉類型設(shè)計(jì)好,即把箱子的類型設(shè)計(jì)好。定義枚舉類型的語(yǔ)法格式為:
    enum 類型名{常量1[,常量2,……常量n]};
定義枚舉類型的位置應(yīng)該在程序首次使用該類型名之前,否則程序無(wú)法識(shí)別該類型。枚舉類型中我們列出的常量稱為枚舉常量。它并不是字符串也不是數(shù)值,而只是一些符號(hào)。

如果我們要定義一周七天的日期類型,可以這樣寫(xiě):
    enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

這時(shí)候,程序中就有了一種新的數(shù)據(jù)類型——day,它的取值范圍就是Sunday到Saturday的那七天。我們已經(jīng)把類型設(shè)計(jì)好,下面我們就能來(lái)創(chuàng)建一個(gè)day類型的變量了:
day today;
today=Sunday;
這樣,day類型的變量today的值就是Tuesday了。

下面我們來(lái)寫(xiě)一段程序來(lái)運(yùn)用一下枚舉類型的數(shù)據(jù):(程序9.1)
#include "iostream.h"
enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
void nextday(day &D);//向后一天是星期幾,參數(shù)為day類型,是程序中首次使用該類型名
void display(day D);//顯示某一天是星期幾
int main()
{
   day today=Sunday;
   for (int i=0;i<7;i++)
   {
      cout <<"Data in today=" <<today <<endl;
      display(today);
      nextday(today); 
   }
   return 0;
}
void nextday(day &D)
{
   switch(D)
   {
      case Sunday:
         D=Monday;
         break;
      case Monday:
         D=Tuesday;
         break;
      case Tuesday:
         D=Wednesday;
         break;
      case Wednesday:
         D=Thursday;
         break;
      case Thursday:
         D=Friday;
         break;
      case Friday:
         D=Saturday;
         break;
      case Saturday:
         D=Sunday;
         break;
   }
}
void display(day D)
{
   switch(D)
   {
      case Sunday:
         cout <<"Sunday" <<endl;
         break;
      case Monday:
        cout <<"Monday" <<endl;
        break;
     case Tuesday:
        cout <<"Tuesday" <<endl;
        break;
      case Wednesday: 
        cout <<"Wednesday" <<endl;
        break;
      case Thursday:
        cout <<"Thursday" <<endl;
        break;
      case Friday:
        cout <<"Friday" <<endl;
        break;
      case Saturday:
        cout <<"Saturday" <<endl;
        break;
   }
}
運(yùn)行結(jié)果:
Data in today=0
Sunday
Data in today=1
Monday
Data in today=2
Tuesday
Data in today=3
Wednesday
Data in today=4
Thursday
Data in today=5
Friday
Data in today=6
Saturday

根據(jù)運(yùn)行結(jié)果,我們發(fā)現(xiàn)在day型變量today中保存的竟然是整數(shù)!也就是說(shuō),一個(gè)整數(shù)和一個(gè)枚舉常量一一對(duì)應(yīng)了起來(lái),要注意是一一對(duì)應(yīng),而不是相等。但是如果我們把整數(shù)直接賦值給today變量,則會(huì)發(fā)生錯(cuò)誤。雖然枚舉類型的實(shí)質(zhì)是整數(shù),但是電腦還是會(huì)仔細(xì)檢查數(shù)據(jù)類型,禁止不同數(shù)據(jù)類型的數(shù)據(jù)互相賦值。另外,在一般情況下,枚舉類型是不能進(jìn)行算術(shù)運(yùn)算的。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 雅安市| 阿鲁科尔沁旗| 晋江市| 永昌县| 揭东县| 紫阳县| 横山县| 化隆| 苏州市| 深州市| 常州市| 连城县| 眉山市| 拉萨市| 泰安市| 中方县| 射洪县| 定州市| 江华| 集贤县| 瑞丽市| 鞍山市| 潢川县| 若尔盖县| 博野县| 巧家县| 佛山市| 泰兴市| 阿克陶县| 阜新市| 南溪县| 五原县| 平安县| 东乡县| 渝北区| 天津市| 万载县| 阜城县| 黄骅市| 肇庆市| 板桥市|