C語言中,switch語句是一種比較常用的控制結(jié)構(gòu),用于在多個(gè)條件中選擇執(zhí)行不同的代碼塊。switch語句的基本語法如下:
switch (expression)
{
case constant:
// 在滿足條件時(shí)執(zhí)行的代碼塊
break;
case constant:
// 在滿足條件時(shí)執(zhí)行的代碼塊
break;
...
default:
// 當(dāng)以上條件都不滿足時(shí)執(zhí)行的代碼塊
}
switch語句的括號(hào)中,expression表示需要進(jìn)行比較的表達(dá)式,可以是常數(shù)、變量或者表達(dá)式。
在括號(hào)內(nèi)的expression將會(huì)與每個(gè)case語句后的常量進(jìn)行比較,如果匹配成功,則執(zhí)行相應(yīng)的代碼塊。constant表示一個(gè)常量或常量表達(dá)式,可以是整數(shù)、字符、枚舉等等。
當(dāng)expression的值與某個(gè)case語句中的常量相等時(shí),程序?qū)?huì)執(zhí)行該case語句下的代碼塊。在執(zhí)行完代碼塊后,程序會(huì)跳出switch語句繼續(xù)執(zhí)行后續(xù)的代碼。
為了避免出現(xiàn)錯(cuò)誤,每個(gè)case代碼塊的末尾通常都會(huì)有一個(gè)break語句,用于跳出switch語句。如果省略了break語句,程序?qū)?huì)繼續(xù)執(zhí)行后續(xù)case語句下的代碼塊,直到遇到break語句或switch語句結(jié)束為止。
在所有的case語句都不滿足的情況下,可以使用default語句來定義一個(gè)默認(rèn)的代碼塊。default語句通常位于switch語句的最后,當(dāng)所有的case都不匹配時(shí),程序?qū)?huì)執(zhí)行default代碼塊。
下面是一個(gè)簡(jiǎn)單的例子,演示了如何使用switch語句來判斷一個(gè)字符的類型:
#include
int main()
{
char ch = 'A';
switch (ch)
{
case 'A':
case 'a':
printf("這是一個(gè)英文字母An");
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
printf("這是一個(gè)數(shù)字n");
break;
default:
printf("這是其他字符n");
}
return 0;
}
以上代碼中,我們判斷了字符ch的類型,如果字符是大寫或小寫的字母A,輸出"這是一個(gè)英文字母A";如果字符是數(shù)字0到9之間的任意一個(gè),輸出"這是一個(gè)數(shù)字";如果不是以上兩種情況,輸出"這是其他字符"。
需要注意的是,在每個(gè)case語句中我們都可以提供多個(gè)常量,用來實(shí)現(xiàn)多個(gè)條件的合并判斷。比如在上面的例子中,我們將大寫和小寫的字母A合并成了一個(gè)條件。
另外,在switch語句中,case語句的順序非常重要。當(dāng)expression的值與某個(gè)case語句的常量匹配時(shí),程序?qū)脑揷ase語句開始執(zhí)行,直到遇到break語句或switch語句結(jié)束。因此,如果有多個(gè)常量的值相同,且其中一個(gè)常量的case語句出現(xiàn)在較前的位置,而其它常量的case語句出現(xiàn)在較后的位置時(shí),程序?qū)?huì)執(zhí)行較前的case語句下的代碼塊。
總結(jié)一下,switch語句是一種根據(jù)表達(dá)式的值來選擇執(zhí)行不同代碼塊的控制結(jié)構(gòu)。在switch語句的括號(hào)中,我們需要提供一個(gè)常數(shù)、變量或表達(dá)式作為比較的基準(zhǔn)。在每個(gè)case語句中,我們可以提供一個(gè)或多個(gè)常量,用來匹配expression的值。通過在每個(gè)case中提供break語句,我們可以在滿足條件時(shí)執(zhí)行相應(yīng)的代碼塊并跳出switch語句。最后,如果沒有任何case語句滿足條件,我們可以使用default語句定義一個(gè)默認(rèn)的代碼塊。
-
Switch
+關(guān)注
關(guān)注
1文章
542瀏覽量
61762 -
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145603 -
程序
+關(guān)注
關(guān)注
117文章
3846瀏覽量
85244 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
73984 -
變量
+關(guān)注
關(guān)注
0文章
616瀏覽量
29506
發(fā)布評(píng)論請(qǐng)先 登錄
C語言中if語句、if-else語句和switch語句詳解
#include<>尖括號(hào)里應(yīng)該寫什么?用的是AT91F40816的單片機(jī)
STM32中C語言問題
Linux內(nèi)核編碼大括號(hào)和空格的放置
C語言中一個(gè)括號(hào)引發(fā)的……
C語言教程之讀/寫BIOS計(jì)時(shí)器
51單片機(jī)實(shí)戰(zhàn)教程之C語言基礎(chǔ)(九 switch語句)
基于STM32從零寫操作系統(tǒng)系列---使用C語言
c語言switch后面括號(hào)怎么寫
評(píng)論