三元运算符中的条件 - Java

时间:2014-08-26 09:09:34

标签: java if-statement return

我有一个简单的if / elseif条件,我正在尝试将其转换为带有Ternay运算符的返回语句,以实现代码冗余,但我无法做到。

任何帮助将不胜感激,谢谢。

这是我的代码段:

if (val.equals("a")||val.equals("s")){
    return true;
} 
else if (val.equals("b")||val.equals("t")) {
     return false;
}

return true;

有人可以建议如何继续上述if / else-if的退货声明(三元运营商)吗?

5 个答案:

答案 0 :(得分:6)

此处不需要条件运算符。只要true既不是val也不是b,您的代码将会返回t

return !(val.equals("b") || val.equals("t"));

或:

return !val.equals("b") && !val.equals("t");

围绕as的第一个条件完全无关紧要,因为"默认"底部的return true已包含这些案例。

编辑:既然您已将返回类型更改为int,则此合理地用于条件运算符:

return val.equals("b") || val.equals("t") ? 0 : 1;

答案 1 :(得分:4)

return !(val.equals("b") || val.equals("t"))

其余的是多余的,val不能等于" a"或" s"并且等于" b"或" t"同时,所以你基本上需要检查它是否等于" b"或者" t",在这种情况下返回false,在任何其他情况下返回true

答案 2 :(得分:2)

return !(val.equals("b") || val.equals("t"));

这是唯一返回false的条件 - 所以你不需要检查第一个条件。

答案 3 :(得分:0)

return !(val.equals("b") || val.equals("t"))

答案 4 :(得分:-1)

尝试以下方法:

boolean b = ( val.equals("b") || val.equals("t") ) ? false : true;
return b;