W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
談到枚舉類型就不得不提switch語句,因?yàn)樗鼈兘?jīng)常一起出現(xiàn)。switch語句是表示一組條件選擇的另一種方式,而且語法上更漂亮,往往執(zhí)行上也更有效率。switch語句看起來是這個(gè)樣子的:
switch (symbol) {
case ’+’:
perform_addition ();
break;
case ’*’:
perform_multiplication ();
break;
default:
cout << "I only know how to perform addition and multiplication" << endl;
break;
}
switch語句與下面一組條件語句等價(jià):
if (symbol == ’+’) {
perform_addition ();
} else if (symbol == ’*’) {
perform_multiplication ();
} else {
cout << "I only know how to perform addition and multiplication" << endl;
}
switch語句每個(gè)分支中的break是必須的,否則執(zhí)行流會(huì)貫穿到下一個(gè)case條件。如果沒有break語句,symbol為 ‘+’時(shí),程序會(huì)先執(zhí)行加法,然后執(zhí)行乘法,最后打印錯(cuò)誤信息。這個(gè)特性偶爾也用得到,不過大多數(shù)情況下,當(dāng)程序員忘記break時(shí),這是錯(cuò)誤之源。
switch語句可以使用整型數(shù)、字符型和枚舉類型。比如,可以這樣把Suit變量值轉(zhuǎn)換為相應(yīng)的字符串:
switch (suit) {
case CLUBS: return "Clubs";
case DIAMONDS: return "Diamonds";
case HEARTS: return "Hearts";
case SPADES: return "Spades";
default: return "Not a valid suit";
}
這種情況并不需要break語句,因?yàn)閞eturn會(huì)使函數(shù)的執(zhí)行流程返回到調(diào)用處,不會(huì)貫穿到下一個(gè)case條件。
一般,在每個(gè)switch語句中都包含一個(gè)default條件——用以處理錯(cuò)誤和意外值——是個(gè)好的編程風(fēng)格。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: