簡體   English   中英

在C中切換語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM