Switch语句掉线

问题描述 投票:0回答:1

我正在使用raytracer,正在尝试实施采样。现在,我有一个代表采样类型的枚举,为简单起见,我们将其称为“一个”,“两个”,“三个”。现在,“一个”和“两个”彼此独立,但是如果某些东西需要采样“三个”类型,则需要运行“一个”和“两个”的代码。现在我正在这样做:

bool flag = false;
switch(type) {
case Three: flag = true;
case One: 
// ...
if(!flag) break;
case Two:
// ...
break;
}

在没有布尔值的情况下是否有一种'鬼s的'方法?我可以考虑将“一个”和“第二”的代码放入单独的函数中,并在“三个”的情况下都调用,但是我不希望在那里调用函数,因为它被称为“很多”。内联函数是另一种选择,但这会导致代码重复。

c++ switch-statement
1个回答
0
投票

我太专注于尝试使其作为开关工作,但正如@NathanOliver指出的那样,它很简单

if(type==One || type == Three) {
// case Three
}
if(type==Two || type == Three) {
// case Two
}
© www.soinside.com 2019 - 2024. All rights reserved.