我有一个简单的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的退货声明(三元运营商)吗?
答案 0 :(得分:6)
此处不需要条件运算符。只要true
既不是val
也不是b
,您的代码将会返回t
:
return !(val.equals("b") || val.equals("t"));
或:
return !val.equals("b") && !val.equals("t");
围绕a
和s
的第一个条件完全无关紧要,因为"默认"底部的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;