return model == DHT11 ? 0 : -40;
我认为这意味着“返回模型,如果介于0和-40之间”,但我想要一个确定的答案。
答案 0 :(得分:6)
它是ternary operator,相当于:
if (model == DHT11)
return 0;
else
return -40;
因此它与检查范围无关。
三元运算符产生一个值,即你也可以在如下的赋值中使用它:
retval = model == DHT11 ? 0 : 40;
return retval;
答案 1 :(得分:0)
答案 2 :(得分:0)
如前所述,它被称为三元运算符。
三元运算符检查某些内容是否为真,如果是,则生成:
之前的值。如果为false,则会产生:
之后的值。
在这种情况下,它会检查model == DHT11
的计算结果是否为真,如果是则为0。如果model == DHT11
的计算结果为false,则它给出-40。然后将三元评估的值赋予return
,退出函数,并返回0或-40。
其他例子:
std::string hi = "hi";
std::cout << (hi == "hi") ? "string hi contains \"hi\"." : "string hi does not contain \"hi\"." << "\n";
会打印:
string hi contains "hi".
一般语法:
bool ? value1 : value2
三元运算符就像if-else语句一样,压缩到一行。