2012-01-18 230 views

回答

15

这是一个三元条件表达式。

5

这就是所谓的三元条件运算符。不过,我不知道使用它的表达式是否有特定的名称。

希望这会有所帮助!

+1

根据所有标准,它们都有一个特定的名称,并且操作员也有一个特定的名称 - *条件操作符*。 – 2012-01-18 09:20:58

+0

@DavidHeffernan:在旁注中:在C++和C社区中,三元运算符是一种常见拼写,因为只有一个三元运算符。 – 2012-01-18 09:58:27

+0

@DavidHeffernan:哎呀,我不小心忽略了你的答案,对不起。我添加了另一个,因为我可以想象一些程序员不知道一元,二元和三元(或n元)的关系。 – 2012-01-18 10:04:34

1

我认为它被称为“三元操作符”。

1

这是一个条件表达式,但是当您使用“?”被称为“有条件的运营商”。

+0

这不是一个声明,而是一个表达! – 2012-01-18 09:05:01

+0

@BasileStarynkevitch - 更新! – 5StringRyan 2012-01-18 09:06:48

+0

@BasileStarynkevitch这是一个声明,但其中包含一个表达式。 – 2012-01-18 09:35:50

1

它是一个条件表达式

为了提高可读性,把复杂的条件括号:

string myString = (somecond)?"true":"false"; 

在你的情况,只是测试boolValue

string MyString = boolValue?"true":"false". 
+0

为了便于阅读,除非它非常简单(而且很多),请将条件和两个受控表达式分别放在不同的行上,就像“if”一样。 – 2012-01-18 09:16:01

10

的C,C++,C#和Java标准都使用以下条款:

  • 运算符是条件运算符
  • 这样的表达式是条件表达式。

所以这些都是正式名称。程序员通常更宽松地将其称为三元运算符,因为它是具有3个操作数的唯一常用运算符。严格来说,它只是三元运算符a

6

运算符?:是“条件运算符”。

boolValue==true ? "true": "false"因此是一个条件表达式。

myString = (boolValue==true ? "true": "false")是一个也有赋值的条件表达式。

string myString = (boolValue==true ? "true": "false");是在声明和赋值中使用条件表达式的语句。

?:通常被称为“三元操作符”。严格说来,这只是一个三元运营商,但因为它是唯一一个在这些语言则指三元运算符是有效的,虽然它的应用基于事实的标签分离,以自己的内部定义。在这里我们给运营商加入到像x § y ¶ z语言历时三者xyz作为操作数那么它也将是一个三元运营商,而有条件的经营者仍然是一个三元运算符,它将不再是三元运算符

2

我不确定这是C#社区中的常见说法,但在C和C++中,很多人通常将这个三元运算符称为。为什么?

  • 有一个单一的操作符期望单个操作数,如-x
  • 有二元运算符期望两个操作数,如x+x
  • 只有一个三元运算符,它需要三个操作数,如x?y:z

“正确的”名称是“条件运算符”,因为结果取决于条件(最左边的操作数)。

0

它被称为“三元”,据我所知,当我学习Java时(11/12年前),你做不到或者至少,老师根本没有教这个 也许是这样因为有时代码的可读性较差...