场景还原
一个简单的switch语句Demo
#include<stdio.h>
int main()
{
int a=1, b=2, re;
char c;
scanf("%c", &c);
switch(c)
{
case '+':
re = a + b;
break;
case '$':
re = a - b;
re++;
break;
case '#':
int other = 3;
re = a + b + other;
break;
default:
printf("Illegal input!\n");
break;
}
printf("%d\n", re);
}
出错原因
在switch语句里定义了新的变量。在上例中在case '#'语句块中定义了新的变量other。
解决办法
给定义了新变量的case语句块套上大括号,这个错误就没了。
改后代码
#include<stdio.h>
int main()
{
int a=1, b=2, re;
char c;
scanf("%c", &c);
switch(c)
{
case '+':
re = a + b;
break;
case '$':
re = a - b;
re++;
break;
case '#':
{
int other = 3;
re = a + b + other;
break;
}
default:
printf("Illegal input!\n");
break;
}
printf("%d\n", re);
}
本文通过一个具体的C语言示例展示了如何正确地在switch语句的不同case内定义局部变量,避免编译错误,并提供了修改前后的代码对比。
3万+

被折叠的 条评论
为什么被折叠?



