短的java if else if else语句

时间:2014-12-22 14:33:05

标签: java if-statement

我有一条if else短语如下:

(one == two) ? "do this" : "do this"

无论如何都要在此声明中添加if else吗?

我似乎无法找到if else的其他内容......

我是特定于简短陈述,而不是如果否则另外做的话。

感谢。

6 个答案:

答案 0 :(得分:8)

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

return a == b? "b"
     : a == c? "c"
     : a == d? "d"
     : "x";

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

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

答案 1 :(得分:4)

如果你想转换像:

if(A) {
    return X;
}
else if(B) {
    return Y;
}
else {
    return Z;
}

您可以将其写为:

A ? X : (B ? Y : Z);

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

但是,我强烈建议不要过多级联。代码变得非常难以理解,? :代码结构从未为此设计过。

答案 2 :(得分:4)

“:”是其他

(one == two) ? "do this" : "do that"

如果一个等于二,则“执行此操作”,否则(如果一个不等于两个)而不是“执行此操作”。

答案 3 :(得分:1)

我有时会在这种情况下使用地图:

private final static Map <String, String> codesMap = <generate the map with values>
...
codesMap.get(one)

答案 4 :(得分:1)

是的,可以使用if-else编写Above语句。这里使用了三元运算符。

if(one==two)
 {
    //Code
 }
else
 {
    //code
 }

三元运算符通过在一个语句中写入条件而不是使用“?:”的多个语句来减少代码行(LOC)。

有关详细信息,请参阅:

http://java.meritcampus.com/t/48/Ternary-operator?tc=mm71

http://java.meritcampus.com/t/60/If-else-if-ladder?tc=mm72

答案 5 :(得分:1)

这就像if-else-statement一样,但从技术上讲,您可以将其转换为if-else-statement。这看起来像这样:

if (one == two) {
"do this"
} else {
"do that"
}

如果您的问题是您是否可以插入if语句 (one == two) ? "do this" : "do this" ...不,你应该使用嵌套的if语句。