短路特性的运用
&&和||都具有短路特性。我们举个实际的小应用作为反思。
private static void andTest() {
int array[] = {1,2,3,4,5};
int i = 0;
while(array[i] != 0 && i < 5) {
i++;
}
}
这种写法时,当 i = 5 后,还是会进while()循环进行判断,这样的话array数组内存溢出,出异常: java.lang.ArrayIndexOutOfBoundsException。
如果我们将while循环中的两个判断条件换过来写,如下。
private static void andTest() {
int array[] = {1,2,3,4,5};
int i = 0;
while(i < 5 && array[i] != 0) {
i++;
}
}
这样一旦识别到 i =5 后会立马跳出循环,不会去处理数组下标的问题,就不错出现异常问题。
所以,在&&和||短路用法上要多注意,用得好可以优化自己的程序,不需要额外加判断语句等来避免异常的发生。
浙公网安备 33010602011771号