Java “短路”问题详解

何为“短路现象”?
当使用逻辑操作符时,我们会遇到一种“短路”的现象。即一旦能够明确无误地确定整个表达式的值,就不再计算表达式余下部分了。因此,整个逻辑表达式靠后的部分有可能不会被运算。
举个例子

public class DuanLuCeShi {
	public static void main(String[] args) {
		boolean b = test1(0) && test2(3) && test3(2);// 分别传入参数0,3,2
		System.out.println("最后的结果为 " + b);
	}

	static boolean test1(int num) {
		System.out.println("test1(" + num + ")");
		System.out.println("result: " + (num < 1));
		return num < 1;// 判断num是否小于1
	}

	static boolean test2(int num) {
		System.out.println("test2(" + num + ")");
		System.out.println("result: " + (num < 2));
		return num < 2;// 判断num是否小于2
	}

	static boolean test3(int num) {
		System.out.println("test3(" + num + ")");
		System.out.println("result: " + (num < 3));
		return num < 3;// 判断num是否小于3
	}
}

代码运行结果为:Java “短路”问题详解_第1张图片
当执行test1时传入参数是0,它是小于1的,因此返回为true,然后执行test2传入参数3,3大于2返回值为false,此时就发生了“短路”现象,后边就不会接着进行了,所以没有test3的输出。这就是“短路”

你可能感兴趣的:(java)