短的java if else if else语句

sar*_*012 1 java if-statement

我有一个if else的简短陈述如下:

(one == two) ? "do this" : "do this"
Run Code Online (Sandbox Code Playgroud)

反正有没有在这个声明中添加if else?

我似乎无法找到任何与if else ...

我是特定于简短的陈述,而不是如果否则其他的缩写.

谢谢.

Mar*_*nik 8

您可以将其扩展为任意数量的子句,与if-else构造完全类比.

return a == b? "b"
     : a == c? "c"
     : a == d? "d"
     : "x";
Run Code Online (Sandbox Code Playgroud)

在这种形式下,它cond在形状和语义上都非常类似于Lisp .

但是,请注意,这不是"if/else的简写",因为它是一个表达式,而if/else是一个语句.如果表达式有任何副作用,那么滥用三元运算符会非常糟糕.


Wil*_*sem 6

如果要转换类似:

if(A) {
    return X;
}
else if(B) {
    return Y;
}
else {
    return Z;
}
Run Code Online (Sandbox Code Playgroud)

您可以这样写:

A ? X : (B ? Y : Z);
Run Code Online (Sandbox Code Playgroud)

因此,您可以将else if条件作为条件写在上层表达式的else -part(之后:)中。

但是,我强烈建议不要过多级联。代码变得极不可读,并且? :代码结构从未为此设计。


Bib*_*ber 5

“:”是其他

(one == two) ? "do this" : "do that"
Run Code Online (Sandbox Code Playgroud)

如果一等于二则“做这个”,否则(如果一不等于二)则“做那个”。