[Java] switch-case 当中的变量定义
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 }