Re: [問題] case後面接括弧?

看板C_and_CPP (C/C++)作者 (喲)時間16年前 (2009/03/21 12:59), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《micklin (離鄉背井的米克)》之銘言: : 在某本書上看到這樣的例子 : switch(Number){ : case(1,3,5):{ : OddNumber=OddNumber+1; : OddSum=OddSum+Number; : } : break; : case(2,4,6):{ : EvenNumber=EvenNumber+1; : EvenSum=EvenSum+Number; : } : break; : default:printf("Error Input"); : } : 我的問題是, case後面可以利用括弧的方法把相關的值放在一起嗎? : 這個程式碼我用gcc跑, compile會過, 但是不管Number的值為何, : 結果都是印出Error Input, 也就是default的部份. : 謝謝! 會過嗎? gcc 4.3.2(Ubuntu 4.3.2-lubuntu12)編譯都丟出 error, 說 case lable does note reduce to an integer constant. 可能是該書作者認為自己可以把碼寫得比較精簡,卻忘了想想逗號的意思. 逗號是銜接兩個式子的意思,它會先算第一個式子,再算第二個式子,然後傳回第二個 式子的值. 假如 case(1,3,5) 是可以容許的寫法,根據逗號的語義,就變成 "case 5", 而 case(2,4,6) 變成 "case 6". 這不是他本來想要的程式. 這是哪一本書啊,告訴我們,來觀摩觀摩. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.228.248

03/22 10:51, , 1F
是啊,這是哪一本「傑作」,快告訴大家。
03/22 10:51, 1F

03/22 21:58, , 2F
謝謝!!書名我還是不要說好了 XD
03/22 21:58, 2F
文章代碼(AID): #19n7H3_u (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
文章代碼(AID): #19n7H3_u (C_and_CPP)