有途網(wǎng)

c語(yǔ)言switch語(yǔ)句如何使用

徐克達(dá)2022-02-10 13:46:27

C語(yǔ)言的運(yùn)用非常之多,它兼顧了高級(jí)語(yǔ)言的匯編語(yǔ)言的優(yōu)點(diǎn),相較于其它編程語(yǔ)言具有較大優(yōu)勢(shì)。那么C語(yǔ)言中的switch語(yǔ)句如何使用呢?

c語(yǔ)言switch語(yǔ)句如何使用

C語(yǔ)言switch語(yǔ)句如何使用

switch語(yǔ)句允許測(cè)試變量與值列表的相等性,每個(gè)值稱之為案例或者case,程序會(huì)檢查switch后面的值并且與case后面的值比對(duì),如果相等則執(zhí)行后面的代碼或代碼塊。

switch語(yǔ)句中使用的表達(dá)式必須具是int或enum類型,否則如float等其他數(shù)據(jù)類型是無(wú)法通過(guò)的編譯的,因?yàn)榫幾g器需要switch后面的語(yǔ)句和case后面的值精確匹配,而計(jì)算機(jī)無(wú)法精確表達(dá)一個(gè)float數(shù)據(jù)類型;

switch可以任意個(gè)case語(yǔ)句(包括沒(méi)有), 值和語(yǔ)句之間使用:分隔;

case后面的值必須是int常量值,或者返回結(jié)果為int類型的表達(dá)式,以下代碼無(wú)法編譯通過(guò)。

當(dāng)switch后面的變量值和case后面的常量值匹配相等后,case后面的代碼將會(huì)被執(zhí)行,直到break語(yǔ)句被執(zhí)行后跳出switch代碼塊,但是break不是必須的,如果沒(méi)有break,則執(zhí)行完當(dāng)前case的代碼塊后會(huì)繼續(xù)執(zhí)行后面case代碼塊的內(nèi)容,直到執(zhí)行break才可以退出。

switch還有一個(gè)默認(rèn)的情況,我們用default關(guān)鍵詞表示,當(dāng)switch后面的變量和所有case后面的常量都不匹配的情況下,默認(rèn)執(zhí)行default后面的語(yǔ)句。

C語(yǔ)言基本構(gòu)成

數(shù)據(jù)類型

C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。

常量與變量

常量其值不可改變,符號(hào)常量名通常用大寫。

變量是以某標(biāo)識(shí)符為名字,其值可以改變的量。標(biāo)識(shí)符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構(gòu)成的序列,請(qǐng)注意第一個(gè)字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時(shí)為其分配相應(yīng)存儲(chǔ)單元。

數(shù)組

如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。

指針

如果一個(gè)變量聲明時(shí)在前面使用 * 號(hào),表明這是個(gè)指針型變量。換句話說(shuō),該變量存儲(chǔ)一個(gè)地址,而 *(此處特指單目運(yùn)算符 * ,下同。C語(yǔ)言中另有 雙目運(yùn)算符 *) 則是取內(nèi)容操作符,意思是取這個(gè)內(nèi)存地址里存儲(chǔ)的內(nèi)容。指針是 C 語(yǔ)言區(qū)別于其他同時(shí)代高級(jí)語(yǔ)言的主要特征之一。

指針不僅可以是變量的地址,還可以是數(shù)組、數(shù)組元素、函數(shù)的地址。通過(guò)指針作為形式參數(shù)可以在函數(shù)的調(diào)用過(guò)程得到一個(gè)以上的返回值,不同于return(z)這樣的僅能得到一個(gè)返回值。

指針是一把雙刃劍,許多操作可以通過(guò)指針自然的表達(dá),但是不正確的或者過(guò)分的使用指針又會(huì)給程序帶來(lái)大量潛在的錯(cuò)誤。

字符串

C語(yǔ)言的字符串其實(shí)就是以'\0'字符結(jié)尾的char型數(shù)組,使用字符型并不需要引用庫(kù),但是使用字符串就需要C標(biāo)準(zhǔn)庫(kù)里面的一些用于對(duì)字符串進(jìn)行操作的函數(shù)。它們不同于字符數(shù)組。使用這些函數(shù)需要引用頭文件<string.h>。

熱門推薦

最新文章