C 在switch的case中定義變數的問題

2021-10-01 02:28:43 字數 489 閱讀 1483

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,直...