此代码构造的名称是啥:条件? true_expression: false_expression

Posted

技术标签:

【中文标题】此代码构造的名称是啥:条件? true_expression: false_expression【英文标题】:What is the name of this code construction: condition ? true_expression: false_expression此代码构造的名称是什么:条件? true_expression: false_expression 【发布时间】:2012-01-18 09:01:01 【问题描述】:

以下结构的正确术语/名称是什么:

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

【问题讨论】:

当wikipedia回来你可以参考en.wikipedia.org/wiki/%3F:这是一个专门针对这个操作员的页面。 【参考方案1】:

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

【讨论】:

【参考方案2】:

C、C++、C# 和 Java 标准都使用以下术语:

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

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

【讨论】:

【参考方案3】:

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

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

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

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

?: 通常被称为“三元运算符”。严格来说,它只是 a 三元运算符,但由于它是这些语言中唯一的一个,因此引用 三元运算符是有效的,尽管它应用的标签基于与其不同的事实自己的内部定义。如果我们将运算符添加到像 x § y ¶ z 这样的语言中,它将 xyz 中的所有三个作为操作数,那么它也将是一个三元运算符,而条件运算符仍然是 一个三元运算符,它不再是三元运算符。

【讨论】:

【参考方案4】:

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

希望这会有所帮助!

【讨论】:

根据所有标准,它们确实有一个特定的名称,运算符也有一个特定的名称——条件运算符 @DavidHeffernan:旁注:在 C++ 和 C 社区中,三元运算符是一种常见的拼写,因为只有一个三元运算符。 @DavidHeffernan:糟糕,我不小心忽略了你的回答,抱歉。我已经添加了另一个,因为我可以想象一些程序员不知道一元、二元和三元(或 n 元)的关系。【参考方案5】:

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

有些一元运算符需要一个操作数,例如 -x。 有些二元运算符需要两个操作数,例如 x+x。 只有一个三元运算符,它需要三个操作数,例如 x?y:z

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

【讨论】:

【参考方案6】:

我认为它被称为“三元运算符”。

【讨论】:

【参考方案7】:

这是一个条件表达式,但是当你使用“?”被称为“条件运算符”。

【讨论】:

不是语句,而是表达式! @BasileStarynkevitch - 已更新! @BasileStarynkevitch 这是一个声明,虽然其中包含一个表达式。 我不这么认为。在 C 和 C++ 中,语句和表达式在语法和语义上是不同的(实际上,表达式 - 就像赋值一样 - 是一个简单的指令)。 @BasileStarynkevitch 他们确实不同。 myString = (boolValue==true ? "true": "false") 是一个表达式,string myString = (boolValue==true ? "true": "false"); 是一个语句。【参考方案8】:

这是一个条件表达式

为了可读性,将复杂条件放在括号中:

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

在您的情况下,只需使用

测试boolValue
string MyString = boolValue?"true":"false".

【讨论】:

为了可读性,除非它非常琐碎(而且很多),否则将条件和两个受控表达式放在单独的行中,就像 if 一样。【参考方案9】:

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

【讨论】:

以上是关于此代码构造的名称是啥:条件? true_expression: false_expression的主要内容,如果未能解决你的问题,请参考以下文章

为两个条件构造一个 if 语句的最佳方法是啥,每个条件都有一个动作,并且两者都有一个动作?

Liquibase 前置条件的 Groovy 语法是啥?

“...解析为非模块实体并且无法使用此构造导入”是啥意思?

支付宝签约支付功能提示“系统综合评估签约条件不满足,这个是啥原因

C#:如果一个类有两个构造函数,这些构造函数共享一些代码的最佳方式是啥? [复制]

sql语句中“where1=1”是啥意思?