此代码构造的名称是啥:条件? 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
这样的语言中,它将 x
、y
和 z
中的所有三个作为操作数,那么它也将是一个三元运算符,而条件运算符仍然是 一个三元运算符,它不再是三元运算符。
【讨论】:
【参考方案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 语句的最佳方法是啥,每个条件都有一个动作,并且两者都有一个动作?
支付宝签约支付功能提示“系统综合评估签约条件不满足,这个是啥原因