C語言中switch語句的case后面不能是一個(gè)關(guān)系表達(dá)式,case后面跟的是一個(gè)常量表達(dá)式,CASE表達(dá)式的真假值判斷就會中止,而剩余的 WHEN子句會被忽略。
不能,case后面是常量表達(dá)式。
要注意 CASE 表達(dá)式里各個(gè)分支返回的數(shù)據(jù)類型是否一致。某個(gè)分支返回字符型,而其他分支返回?cái)?shù)值型的寫法是不正確的。
使用 CASE 表達(dá)式的時(shí)候,最容易出現(xiàn)的語法錯(cuò)誤是忘記寫 END 。雖然忘記寫時(shí)程序會返回比較容易理解的錯(cuò)誤消息,不算多么致命的錯(cuò)誤。而執(zhí)行時(shí)卻出錯(cuò)的情況大多是由這個(gè)原因引起的。
CASE表達(dá)式的執(zhí)行結(jié)果是 NULL 。但是不寫可能會造成"語法沒有錯(cuò)誤,結(jié)果卻不對"這種不易追查原因的麻煩,所以寫上 ELSE 子句(即便是在結(jié)果可以為 NULL 的情況下)。
擴(kuò)展資料
1、CASE表達(dá)式的真假值判斷就會中止,而剩余的 WHEN子句會被忽略。為了避免引起不必要的混亂,使用 WHEN子句時(shí)要注意條件的排他性。
2、當(dāng)case后的表達(dá)式的值與switch表達(dá)式的值相等時(shí), 即執(zhí)行對應(yīng)case后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如表達(dá)式的值與所有case后的常量表達(dá)式均不相同時(shí),則執(zhí)行default后的語句。
推薦教程: 《c語言教程》