首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"DHT11 ?0:-40;“这个语法是什么意思?它叫什么?

"DHT11 ?0:-40;“这个语法是什么意思?它叫什么?
EN

Stack Overflow用户
提问于 2015-11-20 04:08:34
回答 3查看 73关注 0票数 2

return model == DHT11 ? 0 : -40;

我相信它的意思是“如果在0和-40之间,返回模型”,但我想要一个明确的答案。

EN

回答 3

Stack Overflow用户

发布于 2015-11-20 04:10:46

它是ternary operator,相当于:

代码语言:javascript
复制
if (model == DHT11)
    return 0;
else
    return -40;

因此,它与范围的检查无关。

三进制运算符产生一个值,即您也可以在如下所示的赋值中使用它:

代码语言:javascript
复制
retval = model == DHT11 ? 0 : 40;
return retval;
票数 6
EN

Stack Overflow用户

发布于 2015-11-20 04:15:12

这个运算符(E1?E2:E3)称为三元运算符,其中E是表达式。

意思是:“如果E1为true,则返回E2,否则返回E3”

下面是cppreference的link,对此做了更多解释。

票数 0
EN

Stack Overflow用户

发布于 2015-11-20 22:56:16

如前所述,它被称为三元运算符。

三元运算符检查某些内容是否为真,如果是,则在:之前产生值。如果为false,则生成:之后的值。

在这种情况下,它检查model == DHT11的计算结果是否为真,如果是,则返回0。如果model == DHT11的计算结果为false,则返回-40。然后将三元计算得到的值提供给return,退出函数,并返回0或-40。

其他示例:

代码语言:javascript
复制
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语句,被压缩到一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33813417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档