5

可能重复:
什么是 Java ?: 运算符,它有什么作用?

嗨,我可以知道什么是 java 吗?

4

6 回答 6

23

它是条件运算符。

有人称它为三元运算符,但这实际上只是说它有多少个操作数。特别是,Java 的未来版本可以(完全合理地)引入另一个三元运算符 - 而运算符的名称是条件运算符。

请参阅语言规范的第 15.25 节

条件运算符 ? : 使用一个表达式的布尔值来决定应该评估其他两个表达式中的哪一个。

于 2010-06-21T14:49:48.863 回答
12

三元是你要找的词。

于 2010-06-21T14:49:06.230 回答
8

JLS 15.25 条件运算符?:

条件运算符 ? :使用boolean一个表达式的值来决定应该计算其他两个表达式中的哪一个。

JLS 15.28 常量表达式

编译时常量表达式是表示原始类型的值或String不突然完成且仅使用以下内容组成的表达式:

  • 三元条件运算符? :

因此,Java 语言规范正式将其称为(三元)条件运算符。


Java 编码约定 - 缩进

以下是格式化三元表达式的三种可接受的方式:

alpha = (aLongBooleanExpression) ? beta : gamma;  

alpha = (aLongBooleanExpression) ? beta
                                 : gamma;  

alpha = (aLongBooleanExpression)
        ? beta 
        : gamma;  
于 2010-06-21T14:50:34.413 回答
6

这被称为三元或条件运算符(取决于你问谁)

它允许您执行单行条件语句,例如在此伪代码中

print a==1 ? 'a is one' : 'a is not one'

正如 Jon Skeet 所指出的,它的专有名称是条件运算符,但它有 3 个操作数,因此也是三元运算符。

于 2010-06-21T14:50:23.030 回答
2

你的意思是if else语句吗?查找单词ternery。

int x = 2;
String result = x > 1 ? "a" : "b";

相当于:

int x = 2;
String result = "";
if (x > 1) {
   result = "a";
} else {
   result = "b" ;
}
于 2010-06-21T14:53:05.247 回答
1

它被称为条件运算符,但通常称为三元运算符(这是一类运算符,都采用 3 个操作数,但在 Java 中只有一个这样的出口,即条件运算符)

有时它被称为三级运算符,这只是一种语言(英语)使用错误

Eventhouigh对于 c# 同样适用于 Java

于 2010-06-21T14:53:57.093 回答