首頁 >後端開發 >C#.Net教程 >C語言中switch語句的case後面能否是一個關係表達式

C語言中switch語句的case後面能否是一個關係表達式

hzc
hzc原創
2020-07-03 16:26:596656瀏覽

C語言中switch語句的case後面不能是一個關係表達式,case後面接的是一個常數表達式,CASE表達式的真假值判斷就會中止,而剩餘的WHEN子句會被忽略。

C語言中switch語句的case後面能否是一個關係表達式

不能,case後面是常數表達式。

要注意 CASE 表達式裡各個分支回傳的資料型別是否一致。某個分支回傳字元型,而其他分支回傳數值型的寫法是不正確的。

使用 CASE 表達式的時候,最容易出現的語法錯誤就是忘記寫 END 。雖然忘記寫時程式會回傳比較容易理解的錯誤訊息,不算多麼致命的錯誤。而執行時卻出錯的情況大多是由這個原因造成的。

C語言中switch語句的case後面能否是一個關係表達式

CASE表達式的執行結果是 NULL 。但不寫可能會造成"語法沒有錯誤,結果卻不對"這種不易追查原因的麻煩,所以寫上 ELSE 子句(即便是在結果可以為 NULL 的情況下)。

擴充資料

1、CASE運算式的真假值判斷就會中止,而剩餘的 WHEN子句會被忽略。為了避免造成不必要的混亂,使用 WHEN子句時要注意條件的排他性。

2、當case後的表達式的值與switch表達式的值相等時, 即執行對應case後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。如表達式的值與所有case後的常數表達式均不相同時,則執行default後的語句。

推薦教學: 《c語言教學

以上是C語言中switch語句的case後面能否是一個關係表達式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn