有一个基本的if语句问题,所以我在Java中有一个if语句,如下所示:
if (
!isOmitted(word,map.get(word.length()+1)) &&
!isInserted(word,map.get(word.length()-1)) &&
!isTransposed(word,map.get(word.length())) &&
!isSubstituted(word,map.get(word.length())) &&
!isCapital(word,map.get(word.length())))
{
noSuggestion=true;
}
其中每种方法都能按需完美运行。 java有什么方法可以检查所有条件,即使条件为假?我知道&&运算符的性质是,只要条件不成立,就没有必要检查其余条件,因为整个条件都将设置为false,但是我希望可以这样的事情是为了让我的代码更干净。我知道我可以使用布尔变量,并将返回值分配给5个不同的变量,但是是否有其他解决方法可以强制检查每个条件?非常感谢高级
答案 0 :(得分:4)
单个&是一个非短路操作数-即对双方进行评估,而与是否需要无关。
此处有更多信息-https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.22.2
但是,这听起来像是一个糟糕的设计。实际上,由于这个原因,某些代码分析工具会自动将这些运算符标记为可疑。通常,您会希望调用每个方法,因为它们会对对象的状态做出一些更改,而这在if语句中并不是您所期望的。但是您的方法名称不建议这样做。您要达到什么目标?