欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中的Switch 語句詳情

 更新時間:2021年11月10日 10:32:11   作者:梁唐  
在日常的開發(fā)當(dāng)中,我們經(jīng)常會遇到一種情況,我們用一個變量表示狀態(tài)。比如關(guān)閉-激活-完成,當(dāng)我們需要判斷狀態(tài)的時候,就需要羅列if-else語句。今天這篇文章我們就來介紹一下C++ Switch 語句,需要的朋友可以參考一下

在日常的開發(fā)當(dāng)中,我們經(jīng)常會遇到一種情況,我們用一個變量表示狀態(tài)。比如關(guān)閉-激活-完成,當(dāng)我們需要判斷狀態(tài)的時候,就需要羅列if-else語句。

if (status == 'closed') { 
    // todo 
}else if (status == 'activated') { 
    // todo 
}else if (status == 'done') { 
    // todo 
} 

如果只有少數(shù)幾個還好,當(dāng)我們要枚舉的狀態(tài)多了之后,寫if-else就會非常繁瑣。所以C++當(dāng)中提供了switch語句來代替簡單的if-else的羅列。

switch(expression) { 
    case constant1: 
        //todo 
    case constant2: 
        //todo 
    case constant3: 
        //todo 
    default: 
        //todo 
} 

要注意:switch語句當(dāng)中的expression只能是一個整數(shù)或者是枚舉類型,不能是其他類型。比如像是string就不可以作為switch語句的case,這個非常坑,很容易不小心寫錯。

所以上面的if-else語句可以改寫成:

switch (status) { 
    case 1: 
        // todo1 
        break; 
    case 2: 
        // todo2 
        break; 
    case 3: 
        // todo3 
        break; 
    default: 
        //todo 
} 

最后的default表示默認情況,也就是當(dāng)之前的所有可能都不滿足時會執(zhí)行defalut標(biāo)簽下的內(nèi)容。還有一點需要注意,switch語句有點像是路牌,它只是根據(jù)expression的值將代碼跳轉(zhuǎn)到對應(yīng)的位置,并不是只運行對應(yīng)標(biāo)簽的代碼。

比如當(dāng)我們的status為1時,代碼會跳轉(zhuǎn)到todo1處,在執(zhí)行完todo1之后依然會繼續(xù)往下執(zhí)行todo2、todo3的代碼。如果我們只希望執(zhí)行todo1的代碼,需要在末尾加上break,表示執(zhí)行結(jié)束,跳出。這也是一個坑點,加不加break完全是兩種效果。

數(shù)字1、2、3表示狀態(tài)顯然會導(dǎo)致含義不夠明顯,所以我們也可以使用枚舉類型:

enum status {closed, done, activated}; 
 
status st;  
 
switch (st) { 
    case closed: 
        //todo 
        break; 
    case done: 
        //todo 
        break; 
    case activated: 
        //todo 
 default: 
        //todo 
} 

到此這篇關(guān)于C++ Switch 語句詳情的文章就介紹到這了,更多相關(guān)C++ Switch 語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言常見排序算法歸并排序

    C語言常見排序算法歸并排序

    這篇文章主要介紹了C語言常見排序算法歸并排序,歸并排序是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法的一個非常典型的應(yīng)用
    2022-07-07
  • Qt實現(xiàn)鬧鐘小程序

    Qt實現(xiàn)鬧鐘小程序

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)鬧鐘小程序,利用Qt的designer設(shè)計需要的鬧鐘界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • C++詳細講解模擬實現(xiàn)位圖和布隆過濾器的方法

    C++詳細講解模擬實現(xiàn)位圖和布隆過濾器的方法

    位圖(bitset)是一種常用的數(shù)據(jù)結(jié)構(gòu),常用在給一個很大范圍的數(shù),判斷其中的一個數(shù)是不是在其中。在索引、數(shù)據(jù)壓縮方面有很大的應(yīng)用。布隆過濾器是由布隆提出的,它實際上是一個很長的二進制向量和一系列隨機映射函數(shù)。布隆過濾器可以用于檢索一個元素是否在一個集合中
    2022-06-06
  • 一起來看看C++STL容器之string類

    一起來看看C++STL容器之string類

    這篇文章主要為大家詳細介紹了C++STL容器之string類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言示例講解while循環(huán)語句的用法

    C語言示例講解while循環(huán)語句的用法

    在不少實際問題中有許多具有規(guī)律性的重復(fù)操作,因此在程序中就需要重復(fù)執(zhí)行某些語句。一組被重復(fù)執(zhí)行的語句稱之為循環(huán)體,C語言while語句可以是單個語句,也可以是一個語句塊,其條件可以是任意表達式,true是任意非零值,當(dāng)條件為真時,循環(huán)進行迭代
    2022-06-06
  • c++ 預(yù)處理的圖靈完備之引言

    c++ 預(yù)處理的圖靈完備之引言

    這篇文章主要介紹了c++ 預(yù)處理的圖靈完備之引言,需要的朋友可以參考下
    2017-07-07
  • C++實現(xiàn)LeetCode(179.最大組合數(shù))

    C++實現(xiàn)LeetCode(179.最大組合數(shù))

    這篇文章主要介紹了C++實現(xiàn)LeetCode(179.最大組合數(shù)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • c++優(yōu)先隊列(priority_queue)用法詳解

    c++優(yōu)先隊列(priority_queue)用法詳解

    這篇文章主要介紹了c++優(yōu)先隊列(priority_queue)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C語言二叉樹的概念結(jié)構(gòu)詳解

    C語言二叉樹的概念結(jié)構(gòu)詳解

    二叉樹可以簡單理解為對于一個節(jié)點來說,最多擁有一個上級節(jié)點,同時最多具備左右兩個下級節(jié)點的數(shù)據(jù)結(jié)構(gòu)。本文將詳細介紹一下C++中二叉樹的實現(xiàn)和遍歷,需要的可以參考一下
    2022-08-08
  • C語言 圖文并茂詳解程序編譯過程

    C語言 圖文并茂詳解程序編譯過程

    C語言是一種編譯型語言,需要把源文件進行編譯之后才能運行,它的編譯過程是:預(yù)處理:展開頭文件、宏替換,去掉注釋,條件編譯;編譯:檢查語法,生成匯編;匯編:把生成的匯編文件匯編成機器碼;鏈接:鏈接到一起生成可執(zhí)行程序
    2022-04-04

最新評論