这叫什么

Mar*_*cin 8 c++ conditional-operator

可能重复:
什么'?' 用C++做什么?

c ++中的这些语句叫做什么:

testNumber > 1 ? true : false;
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 49

这是条件运算符.

表达式a ? b : c计算bif是否a为true,cif是否afalse.

在大多数语言中,这是三元运算符的唯一示例,即三个参数的运算符.

  • +1我厌倦了称之为三元运算符的人."三元"在这种情况下仅指"三部分",根据语言的不同,可能会有任意数量的此类运算符!我们在这里指的是*conditional*(三元)运算符. (15认同)
  • @jMerliN:if,while和for不是运营商! (5认同)
  • @Jan Gorzny:为什么不使用正确的术语呢?它并不复杂.我确信那里有其他"三元"运营商的语言.调用运算符三元组就像调用加法"二元运算符" - 它只是故事的一部分. (4认同)
  • @Naysayers技术上"条件运算符"出于同样的原因是不正确的.任何基于条件分支的运算符都是"条件运算符".我们将此运算符与该术语相关联的原因与我们将其与"三元运算符"相关联的原因相同.两者都不明确,但是语言中通常没有其他三元运算符,其中有多个条件运算符. (3认同)
  • @Noldorin - 有一天人们会明白这一点. (2认同)
  • @jMerlin C++标准调用运算符"条件运算符". (2认同)

cpx*_*cpx 18

条件表达

      Conditional Expression
   <------------------------>
    (x < y)    ?      x : y
    |_____|    |________|
     Test       Conditional
    Expression   Operator
Run Code Online (Sandbox Code Playgroud)

'?' 和':'构成条件运算符.

  • +1喜欢它.到目前为止唯一一个表达式和运算符之间的区别. (5认同)
  • 来自我的ASCII艺术+1.我喜欢ASCII艺术.:) (3认同)

chr*_*ssr 9

三元报表

  • @Marcin - 从技术上讲,SLaks是正确的.这是条件运算符.三元运算符仅指零件数量.可能有其他三元运算符与此示例不同.http://msdn.microsoft.com/en-us/library/e4213hs1.aspx (13认同)
  • 我必须记住迂腐的程度,并在再次回答c ++问题之前三思而后行. (7认同)
  • 好吧,C++中没有"三元语句"这样的东西.这是一个三元*条件运算符*,它是*表达式*的一部分,而*表达式*又构成一个*表达式语句*. (5认同)
  • 我知道它做了什么,我知道这是一个有条件的陈述.我不知道那些叫什么的.感谢chrissr,我现在知道他们被称为三元声明.这是我正在寻找的答案. (2认同)
  • @Marcin,它们不被称为三元语句,而不是`testNumber> 1`被称为二进制语句.三元是描述`?:`如何在语法上操作(它需要三个参数).运算符的名称是"条件运算符",其含义与"条件语句"不同.对于`-`而言,"条件运算符"是与`<`和"减法运算符"的"小于运算符"相同的名称,对于`*`是"解引运算符". (2认同)