【发布时间】:2013-05-12 10:38:35
【问题描述】:
好的,所以我测试了这段代码,我发现没有抛出任何异常。
public static void main(String[] args) {
int[] list = {1,2};
if (list.length>2 && list[3] == 2){
System.out.println(list[1]);
}
}
这里是不是声明
if (list.length>2 && list[3] == 2)
意味着如果第一个条件为假,我们甚至不必检查第二个条件?
或者等于
if (list.length>2){
if (list[3] == 2){
...
}
}
?
而且,如果它是用 C 或 python 或其他一些语言编写的呢?
谢谢
【问题讨论】:
-
你的两种方式是等价的
-
Java 遵循en.wikipedia.org/wiki/Short-circuit_evaluation(短路评估)来验证该表达式
-
短路评估让您评估只有在第一个条件合法时才合法的条件。你会经常看到类似
if(string != null && string.length > 5)的代码 -
@RicardoCacheira 实际上它们完全不同。看第一个答案。
标签: java if-statement conditional-statements