繁体   English   中英

简短的Java if else if else语句

[英]Short java if else if else statement

我有一个if else简短声明,如下所示:

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

无论如何,是否要在此语句中添加if语句?

我似乎找不到其他东西...

我是专门针对简短的声明,而不是如果其他的话可以直接做。

谢谢。

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

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

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

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

如果要转换类似:

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

您可以这样写:

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

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

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

“:”是其他

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

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

在某些情况下,我有时会使用地图:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM