【发布时间】:2018-04-16 02:44:14
【问题描述】:
检查一个条件是否可以被评估然后在同一个 if 语句中评估表达式是否被认为是一种好的做法,甚至是安全的?
例如:
int[] values = new int[] { 1, 2, 3, 4 }
int index = 4;
if (index < values.length && values[index] == 4) {
System.out.println("value is 4")
}
在这个例子中,条件是values[index] == 4,我使用index < values.length 来检查调用它是否安全。但是,我在同一个 if 语句中这样做。这样做可以吗?
【问题讨论】:
-
&& 和 ||出于这个原因。如果你使用 & 或 |,所有的语句都会被计算。我看不出您的代码有任何缺点。
-
正如here 所说,是的,它是安全的。只有当第一个条件得到验证时,第二个条件才会被测试
-
这个例子太短,没有意义,实际用于生产。
-
@AdamSiemion 这是一个演示问题的简短示例,不是吗?这并不意味着它必须有用。
标签: java type-safety