遇到一个小问题,大概如下: 在第9行会报错,因为在switch只能定义变量和对变量赋值,不能对变量进行初始化。正确的方式是: 将变量的定义和赋值分开写。但是,这时候a和m都是没有被初始化的,而且两条赋值语句m = 9和a = 10都不会执行。原因很简单,因为a的作用域是switch全局,所以在其他case下也有可能用到a。但是如果写成int a = 10;那么就等于无论如何都执行了case 1中的这一条语句,即使在不满足case 1的情况下。这样是和switch case的语意不符合的。所以,定义和赋值必须分开写。这时候a和m的作用域是整个switch块。
还有一种写法: 这种方式是正确的,输出10。这时候,a的作用域仅仅是case 1块。
项目中的错误:switch局部变量
最新推荐文章于 2024-06-26 08:18:34 发布