执行所有条件的 if 语句

2022-09-05 00:06:10

这实际上可能是一个愚蠢的问题,但我想知道是否有可能有一个if语句执行所有条件。我解释:

if (methodA() && methodB() && methodC()) {code}

code当所有三个方法都返回 true 时执行。关键是当一个方法返回 false 时,其余方法不会执行。这通常是性能方面的好方法,但是如果我真的需要执行所有方法,而与它们返回的内容无关,然后计算表达式并进入if或不返回,该怎么办?这同样适用于OR或其他

有没有办法告诉java以这种方式运行?我目前的工作是将其分成三个ifs,但这并不总是奏效,看起来非常丑陋。


答案 1

这很简单:使用运算符而不是 .&&&

寄件人: http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.23

条件和运算符 && 类似于 &(§15.22.2),但仅当其左操作数的值为真时,才计算其右手操作数。


答案 2

使用按位运算符,该运算符计算条件的两端并阻止条件短路。正如您所注意到的,一旦可以确定表达式的结果,和 条件运算符就会短路。&&&||

if (methodA() & methodB() & methodC()) {code}

文档


推荐