短路特性的运用

&&和||都具有短路特性。我们举个实际的小应用作为反思。

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 后会立马跳出循环,不会去处理数组下标的问题,就不错出现异常问题。

所以,在&&和||短路用法上要多注意,用得好可以优化自己的程序,不需要额外加判断语句等来避免异常的发生。

原文地址:https://www.cnblogs.com/hushunfeng/p/3923410.html