【问题标题】:Java "? :" operator? [duplicate]Java“?:”运算符? [复制]
【发布时间】:2011-03-06 08:49:41
【问题描述】:

可能重复:
What is the Java ?: operator called and what does it do?

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

【问题讨论】:

标签: java ternary-operator


【解决方案1】:

三元是您要查找的词。

【讨论】:

  • 这是对它有多少个操作数的描述......不是运算符的名称
  • 当然,在 Google 上搜索“三元运算符”而不是“条件运算符”效果很好,因为您在 &&|| 上获得的页面更少。
  • @Jon:我知道这只是描述,但我使用的是“什么在谷歌中最有效”的逻辑。我同意我没有正确回答“它叫什么”的问题,而是隐含的“我如何查找它”的问题。但我不得不承认,我认为我不应该得到那么多的支持。
  • 我们越是鼓励人们用它的实际名称来称呼它,Google 的搜索结果就会越好 :) 如果 Java 没有 引入,我会得到一种反常的满足感诚然,另一个三元运算符...
  • @Jon:好的,我可以买那个。我最初觉得“条件”有很多其他含义,以至于谷歌搜索会提供太多的命中(22M)与三元(4M)。这就是我这样回答的原因,但我想这只是启用。无论如何,差异在这一点上是无关紧要的。
【解决方案2】:

这是条件运算符。

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

section 15.25 of the language specification:

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

【讨论】:

    【解决方案3】:

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

    它允许你做单行条件语句,比如这个伪代码

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

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

    【解决方案4】:

    JLS 15.25 Conditional Operator ? :

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

    JLS 15.28 Constant Expression

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

    • 三元条件运算符? :

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


    Java Coding Conventions - Indentation

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

    alpha = (aLongBooleanExpression) ? beta : gamma;  
    
    alpha = (aLongBooleanExpression) ? beta
                                     : gamma;  
    
    alpha = (aLongBooleanExpression)
            ? beta 
            : gamma;  
    
    【解决方案5】:

    您是指 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" ;
    }
    
    【解决方案6】:

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

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

    Eventhouigh this 适用于 c#,同样适用于 Java

    猜你喜欢
    • 2010-11-05
    • 2011-04-02
    • 2015-09-26
    • 2013-10-09
    • 2012-08-23
    • 2011-11-06
    • 2013-09-07
    • 2014-05-10
    • 1970-01-01
    相关资源
    最近更新 更多