switch 语句里面不同的case 下是不能声明同一个变量的。 要明确switch下是一个作用域,case下属于switch的作用域。
下面介绍两种常见错误:
switch(number){
case 0:
*int i =1;*
break;
case 1:
*int i=1;*
break;
}
上面这种这种情况会报出 : 变量i 已经被定义过,不能被重复定义。
switch(number){
case 0:
*int i =1;*
break;
case 1:
*i=2;*
break;
}
上面的代码会在i=2的位置报出i变量未被初始化。原因是在int i=1的时候声明了i,但是case 2时不会运行case 1,所以会没有初始化。
综上所述: 在switch里 不同case下的变量也要用不同的变量名,不要用相同的变量名。