黑马程序员技术交流社区
标题:
swich--case的一些问题
[打印本页]
作者:
每天进步一点点
时间:
2014-6-29 21:11
标题:
swich--case的一些问题
为甚么在case后面定义变量必须加上大括号 ,例如:
这样就会出错
switch (1) {
case 1:
int a =8; // Expected expression
break;
case 2:
printf("haha");
break;
default:
break;
}
复制代码
作者:
骑着飞机去看海
时间:
2014-6-29 21:37
作用域,你的作用域有问题,既然从新定义了变量a那么就应该在第一个break后面加}
作者:
骑着飞机去看海
时间:
2014-6-29 21:42
改正代码如下
switch (1)
{
case 1:
{
int a =8; // Expected expression
break;
}
case 2:
printf("haha");
break;
default:
break;
}
复制代码
作者:
fantacyleo
时间:
2014-6-29 22:06
根据c标准,如果有一个case子句在变量a的作用域范围,那么整个switch的所有case和default子句都必须在a的作用域范围内。我的理解,这是避免声明a的case子句被跳过而到了一个未加声明直接使用a的case或default
作者:
我是一只小小强
时间:
2014-6-30 11:08
不加大括号,case后面的定义变量的作用域电脑会无法识别它的作用域是仅仅在case1还是以后所有就会报错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2