Re: [問題] 不用if 判斷

看板C_and_CPP作者 (誠實豆沙包)時間14年前 (2009/08/22 00:20), 編輯推噓4(406)
留言10則, 6人參與, 最新討論串5/7 (看更多)
int input; switch(input) { case -32768 ... -1: printf("<0"); break; case 0: printf("0"); break; default : printf(">0"); break; } 不用if也可以用switch ...XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.107.198

08/22 00:53, , 1F
...是什麼意思
08/22 00:53, 1F

08/22 00:57, , 2F
case -32768 ... -1: 用在 g++ 嗎?
08/22 00:57, 2F

08/22 01:03, , 3F
非標準語法
08/22 01:03, 3F

08/22 11:58, , 4F
那是ansi的標準語法...只是很少人用而以..c c++都有支援
08/22 11:58, 4F

08/22 12:01, , 5F
-32768 ... -1 的意思是從-32768到-1
08/22 12:01, 5F

08/22 12:02, , 6F
好處是您可以使用...來設定一個範圍的數值,而不用連續的撰寫
08/22 12:02, 6F

08/22 12:02, , 7F
case來比對。
08/22 12:02, 7F

08/22 12:12, , 8F
非標準 OK 他是 GNU case range extension
08/22 12:12, 8F

08/22 12:34, , 9F
謝謝wowtiger大大的指正...那是gnu才支持的語法
08/22 12:34, 9F

08/22 14:20, , 10F
用 INT_MIN 會比較好
08/22 14:20, 10F
文章代碼(AID): #1AZibI9H (C_and_CPP)
文章代碼(AID): #1AZibI9H (C_and_CPP)