我如何使用条件运算符?

Rob*_*cks 34 c++ conditional-operator

我一直想知道如何"A ? B : C"用C++兼容语言编写语法.

我认为它的工作原理如下:( 伪代码)

If A > B
   C = A
Else
   C = B
Run Code Online (Sandbox Code Playgroud)

任何资深的C++程序员都会帮帮我吗?

lc.*_*lc. 60

它的工作原理如下:

(condition) ? true-clause : false-clause
Run Code Online (Sandbox Code Playgroud)

它最常用于赋值操作,尽管它也有其他用途.三元运算符?是缩短if-else子句的一种方法,在其他语言中也称为immediate-if语句(IIf(condition,true-clause,false-clause)例如,在VB中).

例如:

bool Three = SOME_VALUE;
int x = Three ? 3 : 0;
Run Code Online (Sandbox Code Playgroud)

是相同的

bool Three = SOME_VALUE;
int x;
if (Three)
    x = 3;
else
    x = 0;
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果在示例中x是const int,则三元版本将是唯一可编译的选择。 (2认同)

mag*_*ius 12

它的工作原理如下:

expression ? trueValue : falseValue
Run Code Online (Sandbox Code Playgroud)

这基本上意味着如果expression计算结果为true,则返回或执行trueValue,否则将返回或评估falseValue.

请记住,只有表达式为true或false时,才会评估和执行trueValue和falseValue.此行为称为短路.


Myk*_*oft 5

在 C++ 中,没有实际的 if 部分。它称为三元运算符。它的用法如下:<布尔语句>?<如果为真则结果> : <如果为假则结果>; 对于上面的示例,它看起来像这样:

C = A > B ? A : B;
Run Code Online (Sandbox Code Playgroud)

维基百科上的这篇文章也讨论了它: http ://en.wikipedia.org/wiki/Ternary_operation