int n = 3;
switch (n){
int a = 1;
case 1:
int b = 1;
........
break;
case 2:
int c = 1;
........
break;
default:
int d = 1;
break;
}
其中a、b、c的定义都无法通过编译,而d的定义可以。
原因:
switch后会直接跳到符合的case语句,所以a的定义被跳过,b、c同理
而d是在最后一个分支定义的,所以不存在被跳过的问题。
解决方法:
把a的定义放到switch语句前面
把b、c的定义放到一个{}中,圈定其作用域。
阅读(1313) | 评论(0) | 转发(0) |