1 switch(c){ 2 case '+': 3 int res =d1+d2; 4 data.push(res); 5 break; 6 case '-': 7 res = d2-d1; 8 data.push(res); 9 break; 10 case '*': 11 res =d1*d2; 12 data.push(res); 13 break; 14 case '/': 15 res = d2/d1; 16 data.push(res); 17 break; 18 }
上面的定義是有問題的,會提示res的重復定義,所以switch當中的多個case語句實際上命名空間是一樣的。
所以上面應該定義為:
1 int res=0; 2 switch(c){ 3 case '+': 4 int res =d1+d2; 5 data.push(res); 6 break; 7 case '-': 8 res = d2-d1; 9 data.push(res); 10 break; 11 case '*': 12 res =d1*d2; 13 data.push(res); 14 break; 15 case '/': 16 res = d2/d1; 17 data.push(res); 18 break; 19 }