C++的switch用法探討

來源:互聯網
上載者:User

     先看看switch在C++裡的定義:

     基於整型運算式的值允許在代碼的多個部分的中選擇。

switch ( expression )   case constant-expression : statement   [default  : statement]

      switch中的運算式必須是整型、字元或枚舉量值。

      也就是說我不能這樣用:

string s="123";switch(s){     case "1":{             break;     }     case "23":{            break;     }     、、、}

     這個糾結啊(C#,JS是可以判斷字串的),為了能夠使用switch語句,只能把字串與數值一一對應了,不過這樣也很麻煩。比如:

int getIndex(std::string *s,std::string str){int index;for(int i=0;i<s->length();i++){if(s[i]==str){index=i;break;}}return index;}int main(){string str="12",ss;string s[10]={"123","12"};int i=getIndex(s,str);switch(i){case 1:{ss+="100";break;}default:{ss+="default";break;}}cout<<ss<<endl;}

   這種方法還算可以,每次需要增加一個分支就在數組裡加一個字串,並且再增加一個case做處理即可。類似的方法還有:

int main(){string str="12",ss;int i;if(str=="12")i=1;if(str=="123")i=2;switch(i){case 1:{ss+="100";break;}default:{ss+="default";break;}}cout<<ss<<endl;}

     這樣做最直接,但如果分支很多的時候,這if語句就會很多了,個人還是比較喜歡第一種,如何你有好的方法,歡迎帖出來交流學習!

作者:kunoy 出處:http://blog.csdn.net/kunoy 申明:作者寫博是為了總結經驗,和交流學習之用。
如需轉載,請盡量保留此申明,並在文章頁面明顯位置給出原文串連。謝謝!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.