好的,所以我测试了这段代码,发现没有任何异常被抛出.
public static void main(String[] args) {
int[] list = {1,2};
if (list.length>2 && list[3] == 2){
System.out.println(list[1]);
}
}
Run Code Online (Sandbox Code Playgroud)
声明在这里
if (list.length>2 && list[3] == 2)
Run Code Online (Sandbox Code Playgroud)
意味着如果第一个条件是假的,我们甚至不必检查第二个条件?
或者等于
if (list.length>2){
if (list[3] == 2){
...
}
}
Run Code Online (Sandbox Code Playgroud)
?
而且,如果它是用C或python或其他语言编写的呢?
谢谢
两个条件运算符&&和|| 根据
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html进行短路,这意味着第二个操作数有时不需要进行评估.
有人可以提供一个示例,其中条件OR(||)运算符将被短路?
使用条件AND(&&)运算符时,短路行为非常简单:
如果(false &&(1> 0))则第二个操作数:(1> 0)不需要被评估,但似乎无法找到/想到条件OR的示例.