三元运算符中的条件 - Java

use*_*212 0 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;
Run Code Online (Sandbox Code Playgroud)

有人可以建议如何继续上述if/else-if的return语句(三元运营商)吗?

Jon*_*eet 6

这里不需要条件运算符.您的代码将返回true,只要val既不b是t:

return !(val.equals("b") || val.equals("t"));
Run Code Online (Sandbox Code Playgroud)

要么:

return !val.equals("b") && !val.equals("t");
Run Code Online (Sandbox Code Playgroud)

第一个条件周围a和s是完全不相干,作为"默认" return true的底部已经包含了这些情况.

编辑:既然你已经将返回类型更改为int,那么使用条件运算符是合理的:

return val.equals("b") || val.equals("t") ? 0 : 1;
Run Code Online (Sandbox Code Playgroud)