因为作用域的标志是大括号{}。所有的case在一个作用域里面,所以不能声明同名的变量,但在别的case也不能使用那个变量,因为不同的case只有一个case被执行,如果执行的这个case使用了别的case声明的变量,就意味着那个声明变量的case没有被执行,也就是说变量还没有被声明就被别的case使用了,这是矛盾的,所以不能这样用。不同的case要使用相同的变量名,一个方法是在switch外部声明,另一个方法是用大括号{}把case内部的代码块括起来,这样case里面的代码块就在一个单独的作用域里面,这样就没问题了。
为什么在switch语句中不同的case代码块不能使用同名的变量
最新推荐文章于 2024-08-23 04:07:09 发布