switch case語句在c++程式中使用的較為頻繁,但是有很多細節可能平時不會注意到,本文總結一下switch case語句中的case標籤。
1、case是標籤
先來說下標籤(label)。如下一段**:
[cpp]view plain
copy
?#include
using
namespace
std;
intmain()
這段**是否可以編譯通過呢?答案是可以。雙斜槓之後的
www.csdn.net
被當做注釋了,那麼前面的http:是否合法?這就是c++中乙個幾乎不會被用到的語法,標籤。
帶標籤的語句是一種特殊的語句,在語句前面有乙個識別符號(即標籤,上段**中的http)和乙個冒號。使用gotolabel就可以跳到標籤處執行,比如可以在**中寫goto http,這樣就會執行cout語句了。
case就是一種標籤,case關鍵字和它對應的值一起,稱為case標籤。
類中的public、private、protect也是標籤,稱為成員訪問標籤。
2、case標籤必須是整型常量表示式
請記住整型常量這四個字,不滿足這個特性的不能作為case值,編譯會報錯。這也決定了switch的引數必須是整型的。
整型,意味著浮點數是不合法的,如case 3.14:不可以;常量,意味著變數是不合法的,如case ival: ival不能是變數。
(1)c++中的const int,注意僅限於c++中的const,c中的const是唯讀變數,不是常量;
(2)單個字元,如case 'a': 是合法的,因為文字字元是常量,被轉成ascii碼,為整型;
(3)使用#define定義的整型,#define定義的一般為常量,比如#define pi 3.14,但是也必須是整型才可以;
(4)使用enum定義的列舉成員。因為列舉成員是const的,且為整型。如果不手動指定列舉值,則預設列舉值為從0開始,依次加1。如下這段**正常執行:
[cpp]view plain
copy
?#include
using
namespace
std;
enum
color;
intmain()
return
0;
}
C 中的case標籤
switch case語句在c 程式中使用的較為頻繁,但是有很多細節可能平時不會注意到,本文總結一下switch case語句中的case標籤。1 case是標籤 cpp view plain copy print?include using namespace std intmain 這段 是否可...
switch 中case的注意
1.環境 root localhost desktop cat proc version linux version 2.6.32 220.el6.i686 mockbuild x86 003.build.bos.redhat.com gcc version 4.4.5 20110214 red h...
T SQL中Case的用法
case語句是條件判斷語句的一種,可以完成比if語句更強的判斷,可以解決if語句中巢狀過多的問題。語法 case when 條件a then 結果a when 條件b 結果b else 結果n end 和decode 不同的是,decode 只能針對固定的值,而 case 可以用不是固定值,需是乙個...