[英]Switch statements in C
我正在使用switch語句在C語言中編寫程序,我想知道編譯器是否會接受諸如的語句
case !('a'):
我在網上找不到任何使用過的程序!
帶有switch語句。
你真的嘗試過嗎?
好吧,我做了(Mac OS X上的gcc)。
! 是邏輯否定運算符,並且!(x)返回1表示x為0,其他為0。 'a'
具有在編譯時已知的值,因此編譯器將!('a')
為0.所以
case !('a'):
相當於
case 0 :
它甚至不會生成編譯器錯誤,並且運行正常。
我認為這不是你想要做的,而是想要一個能夠捕獲除'a'之外的所有值的情況,而不是單個值0.抱歉但是switch-case語句不能那樣工作。 case
關鍵字后面的表達式必須是編譯器已知的值。
不,抱歉,不是你想要的方式(否定整個邏輯表達式而不是其中一個組件)。 但是您可以使用default
子句匹配case
不匹配的任何內容。
每個case條件都有一個int作為其條件值。 字符被認為是int的特例。 使用NOT運算符在case語句中沒有意義。
喬的答案是最好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.