在c++中switch case中定義變數
1.
int n = 3;
//**1
switch (n)
報錯資訊:error c2360: 「y」的初始化操作由「case」標籤跳過
這是因為可能出現在case 2中定義了,但是在case 3中使用了(當然,我們沒在case3中使用了,但編譯器認為這種可能會發生),但程式執行的跳過了case 2,執行的是case 3,這個時候在case 3中使用y相當於使用了乙個沒有定義的變數,相當於出現這種**:
//**2
int n = 3;
switch (n)
**2中的case 3沒有報錯,原因是在case 3,int z的作用域在它的下面都可以使用,不存在作用域的問題。
解決辦法:
1.在switch上面定義變數
2.在case中加上大括號,限定變數的作用域
//**3
int n = 3;
switch (n)
break;
case 3:
cout << n << endl;
break;
}3.先定義,在賦值
//**4
int n = 3;
switch (n)
//**5
int n = 3;
switch (n)
在這裡兩個case語句都有報錯,「y」的初始化操作由「case」標籤跳過。**4中按理來說y的已經定義並初始化了,且這個int y=3,這句不存在不跳過的可能。報錯原因不明。
switch case 中定義變數
剛剛又報了乙個 1540 0246 s the case statement bypasses the initialization of cstring sroamareacode 這種不清楚的狀況終於因為剛剛的一時興起,google了下下 原來只是加不加括號的區別。因為c 中變數的作用域是相鄰的...
java中的switch case語句
switch case語句格式如下 switch 變數 swtich 變數型別只能是int short char byte和enum型別 jdk 1.7 之後,型別也可以是string了 當進行case判斷時,jvm會自動從上到小掃瞄,尋找匹配的case,可能存在以下情況 情況一 若未找到,則執行預...
PHP中switch,case的用法詳解
以下 中已做詳細說明 created by phpstorm.user 洋 汪 date 2016 7 14 time 17 03 header content type text html charset utf 8 switch 的用法是判斷 case 後面的表示式和 switch 後面的表示式...