有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    它是一个表达式,而不是一个语句,这意味着它的计算结果总是有意义的。如果没有“else part”,那么如果测试为false,表达式就没有任何计算结果。所以,不,没有其他东西就没有相似之处

    我喜欢使用conditional operator的一点是,可以指定

    foo =  a > b ? c : d;
    

    读了它,你知道foo得到了分配给它的东西,不管测试是否正确。因此,它为您提供了一种方法来指示分配的值取决于某个测试

    Groovy有一些类似的操作符:

    如果左侧的表达式为空,Elvis运算符?:会将右侧的值指定为默认值

    如果左侧的计算结果为null,则安全的null运算符?.的计算结果为null。如果你有一系列可能为空的东西,比如foo?.bar?.baz,如果某个东西为空,你不想用NPE爆炸,但不想键入所有的空检查,那么这种方法很方便

  2. # 2 楼答案

    我猜你是在用它给一个变量赋值,我称之为“c”,你只想在if语句为真时赋值。通常的做法是:

    if(a > b) c = a;
    

    但是如果你真的想使用三元语法,你可以写:

    c = a > b ? a : c;
    

    注意,三元参数是可选的,所以我省略了它们

  3. # 3 楼答案

    没有,没有道理

    ?:是三元比较运算符——一个表达式。如果没有其他语句,表达式的值是什么?C#有一个速记版本??,但这只是语法上的糖分,Java没有类似的东西