c++ - 切换语句失败

标签 c++ switch-statement

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

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

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

最佳答案

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

if(type==One || type == Three) {
// case One
}
if(type==Two || type == Three) {
// case Two
}

关于c++ - 切换语句失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59667920/

相关文章:

c++ - 为客户端-服务器通信构建 TCP/IP 服务器的最佳方式?

c++ - 为什么 ostream iomanip 在传递给操作符 << 时不需要模板参数?

c++ - 编译 g++ 时不在范围内声明

java - Android调用C++函数得到UnsatisfiedLinkError

ios - 如果将某种类型传递给 Swift 中的函数,如何返回 nil?

php - 比较开关内数字的奇怪问题

c# - Shell命名空间扩展。 C#。 C++,MFC,AT-使用什么?

linux - 如何确保用户输入有效的 switch case 选项?

C++ 开关 : case <some constant> - is this allowed?

iOS:使用 Switch Case 检查字符串前缀?