场景还原
一个简单的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);
}