我有一条if else短语如下:
(one == two) ? "do this" : "do this"
无论如何都要在此声明中添加if else吗?
我似乎无法找到if else的其他内容......
我是特定于简短陈述,而不是如果否则另外做的话。
感谢。
答案 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)。
有关详细信息,请参阅:
答案 5 :(得分:1)
这就像if-else-statement
一样,但从技术上讲,您可以将其转换为if-else-statement
。这看起来像这样:
if (one == two) {
"do this"
} else {
"do that"
}
如果您的问题是您是否可以插入if语句
(one == two) ? "do this" : "do this"
...不,你应该使用嵌套的if语句。