一、错误
case 1: 这里面出现了变量的声明,没有使用额外的代码块来限定作用域,会报错
int a;
scanf("%d", &a);
switch(a) {
case 1:
int x = 0; //错误!
printf("a=1");
break;
case 2:
printf("a=2");
break;
default:
printf("other");
break;
}
二、改正
case 1: 这里面出现了变量的声明,要使用额外的代码块来限定作用域。
int a;
scanf("%d", &a);
switch(a) {
case 1:
{
int x = 0; //错误!
printf("a=1");
}
break;
case 2:
printf("a=2");
break;
default:
printf("other");
break;
}
三、扩展
case 1: 这里面出现了多条语句,不需使用额外的代码块来限定作用域。
int a;
scanf("%d", &a);
switch(a) {
case 1:
printf("a=1");
printf("a=1");
break;
case 2:
printf("a=2");
break;
default:
printf("other");
break;
}