能不能详细解释一下为什么?
case 1:
// int x=0;错
int x;
x=0;// 正常
break
case2
break
case3
int y=0; 正常。
break;
在 case 1 2 中时不可以初始化变量 报错会是 case被跳过。
。但是定义后在赋值是没问题(至少我测试后可以运行)
那么为什么。希望有老师帮忙一下 (是在不使用{}的情况下)
我只是要知道为什么?
最后一个case中 是可以初始化 这个没问题!
第1个回答 推荐于2018-03-20
那是因为这个规定是为了避免出现下面的这种情况:
case 1:
int x;
case 2:
x = 0;
在最后一个case语句中定义是不会出现上面这种情况的本回答被提问者和网友采纳
case 1:
int x;
case 2:
x = 0;
在最后一个case语句中定义是不会出现上面这种情况的本回答被提问者和网友采纳
第2个回答 2012-06-20
那是因为这个规定是为了避免出现下面的这种情况:
case 1:
int x;
case 2:
x = 0;
在最后一个case语句中定义是不会出现上面这种情况的
case 1:
int x;
case 2:
x = 0;
在最后一个case语句中定义是不会出现上面这种情况的