我有一个开关,我在其中检查某种属性,如果检查产生特定值,我想检查另一个值,所以我做了这样的事情:
switch(property_A)
{
case NA:
if(value_0 == property_B)
property_A = value_a;
else if(value_1 == property_B)
property_A = value_b;
case value_0:
...
break;
case value_1:
...
break;
}
所以,我知道这解决了我的问题,但我不知道这是个好主意还是我应该换一种方式
# NA 案例有点像默认案例,但不完全是,因为它确实告诉了我一些事情,但还不够
最佳答案
这取决于你想做什么。如果你到达 case NA
,没有 break
关键字,value_0
case 将在两个 if< 之一之后执行
分支完成。因此,如果那是您想要的行为,不使用 break
也没关系,但我认为这不是您想要的。
我建议您只需将 if - else
语句移动到 switch
上方并删除 NA
大小写。这样,您将首先将正确的数据分配给 property_A
,然后您可以在 switch
中使用它做任何您想做的事情。
编辑:作为Jack Deeth points out ,如果您故意省略了 break
语句,最好添加您这样做的注释。
关于c - 没有中断的开关盒是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40912857/