switch语句中编程错误:jump to case label

//编数据结构第一次作业,遇到该问题,记录下来以便复习

 1 int main()
 2 {
 3     int a=0;
 4     switch(a)
 5     {
 6         case 0:int b=0;break;
 7         case 1:break;
 8         default:break;
 9     }
10     return 0;
11 }

问题:

error:jump to case label 

warning :unused variable 'b' 

原因:case 0:中的变量穿透到case 1和default中,case 0中的变量经过了初始化,而在case1和default作用域中中的变量没有经过初始化

解决方法:在所需要变量的范围内加上花括号

 1 int main()
 2 {
 3     int a=0;
 4     switch(a)
 5     {
 6     case 0:
 7     {
 8         int b=0;
 9         break;
10     }
11     case 1:
12         break;
13     default:
14         break;
15     }
16     return 0;
17 }

 

posted @ 2020-09-28 20:13  fiona_dudu  阅读(1975)  评论(0)    收藏  举报