1. 程式人生 > >switch語句中在case塊裡宣告變數會遇到提示“Expected expression before..."的問題

switch語句中在case塊裡宣告變數會遇到提示“Expected expression before..."的問題

例如在如下程式碼中

1 case 0:
2 int index = 1;
3 int j = 2;
4 self.sum = i + j;
5 break;

GCC在case語句之後的第一行中宣告變數時遇到問題。

這時需要在case塊兩端新增花括號,GCC就變乖了。

即:

1 case 0:{
2 int index = 1;
3 int j = 2;
4 self.sum = i + j;
5 break;
6

結論:

switch語句中不能宣告變數,並不是賦值問題。

其它的語句塊沒這個限制,switch語句中用的變數必須在塊外宣告,或者在case:{}花括號裡面宣告變數。