【发布时间】:2015-09-15 01:04:09
【问题描述】:
考虑 int num 的这个 const 声明:
int main() {
bool a = true, b = false;
// ...
const int num = a ? (b? 2 : 4) : 4;
std::cout << num;
}
我想要const int num 遵循这个真值表(我很抱歉已经从我的原始问题中编辑了它以反映我程序中的模式):
b
a true false
true 2 4
false 4 2
如何修改上面的const int num 声明以使用三元运算符实现这一点?我知道如何使用 lambda 函数和嵌套的 if 语句或 switch 语句在 lambda 函数中声明这样的 num 为 const,但我只想知道如何使用三元运算符来做到这一点。作为奖励,如果要使用 3 个或更多这样的布尔值(在真值表中没有特定模式)怎么办?
【问题讨论】:
-
a ? (b? 2 : 3) : (b ? 4 : 5);
标签: c++ operator-keyword ternary