作者hylkevin (Kevin)
看板C_and_CPP
標題Re: [問題] case後面接括弧?
時間Fri Mar 20 18:50:57 2009
※ 引述《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的部份.
: 謝謝!
compiler 會逐一評估逗號運算子所隔開的運算元
並且傳回最後一個運算元的值
你可以試著int a=(1,2,3);
把a印出來會發現是3
也就是說case(1,3,5) 其實是case 5
case(2,4,6)其實是6
關於逗號運算子是憑印象寫 有錯請指正
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.185.122
1F:→ micklin:感謝回答!! 03/22 21:58