c++:在switch的case中定義變數的問題
問題描述:
平常寫**過程中常會遇到在switch-case中定義區域性變數(如下面的示例中的「case ecolor_red **1中定義的temp變數」),但是編譯總是無法通過。之前看到書中提到過這個問題,但是好久沒寫c++,就忘了具體怎麼回事,這次用到總算弄明白了。為了以後萬一遺忘了方便查閱,特地記錄說明。
switch(color)
break;
case ecolor_blue:
cout << "temp = " << temp << endl; //3: 使用前面定義的變數, error
……break;
default:
……break;
}
解決方案:
具體解決辦法就像上面**示例中的「case ecolor_green」的做法,在case中加上「」,將區域性變數定義在**塊中,便能解決問題;
原因:
switch 中case的注意
1.環境 root localhost desktop cat proc version linux version 2.6.32 220.el6.i686 mockbuild x86 003.build.bos.redhat.com gcc version 4.4.5 20110214 red h...
關於SWITCH中CASE的執行順序。
關於switch中case的執行順序其實是乙個挺有意思的小問題,帶不帶break,或者break放置在 都會對最終結果產生影響,其實判斷最終結果只要找到入口點和最近的乙個break就行,然後入口點和這個最近的break之間的所有語句都會被執行。但是有一種比較特別的情況如下 package zx.pa...
Switch語句沒有case的例子
在學習c語言的時候,這方面就沒有弄得很清楚。下面舉例說明 int a 2 int b 3 switch a system.out.println b b 這段 的特點是每一句都沒有break,所以每一句都不會跳出。首先查詢2,沒有對應的case,直接執行default b 4。由於沒有break,直...