C語言中switch語句的case後面不能是一個關係表達式,case後面接的是一個常數表達式,CASE表達式的真假值判斷就會中止,而剩餘的WHEN子句會被忽略。
不能,case後面是常數表達式。
要注意 CASE 表達式裡各個分支回傳的資料型別是否一致。某個分支回傳字元型,而其他分支回傳數值型的寫法是不正確的。
使用 CASE 表達式的時候,最容易出現的語法錯誤就是忘記寫 END 。雖然忘記寫時程式會回傳比較容易理解的錯誤訊息,不算多麼致命的錯誤。而執行時卻出錯的情況大多是由這個原因造成的。
CASE表達式的執行結果是 NULL 。但不寫可能會造成"語法沒有錯誤,結果卻不對"這種不易追查原因的麻煩,所以寫上 ELSE 子句(即便是在結果可以為 NULL 的情況下)。
擴充資料
1、CASE運算式的真假值判斷就會中止,而剩餘的 WHEN子句會被忽略。為了避免造成不必要的混亂,使用 WHEN子句時要注意條件的排他性。
2、當case後的表達式的值與switch表達式的值相等時, 即執行對應case後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。如表達式的值與所有case後的常數表達式均不相同時,則執行default後的語句。
推薦教學: 《c語言教學》
以上是C語言中switch語句的case後面能否是一個關係表達式的詳細內容。更多資訊請關注PHP中文網其他相關文章!