【学习随记】短路与非短路的运算符

&&(短路与)和&(逻辑与)的时候:

有假则为假,全真则为真(有假必假,全真为真)


||(短路或)和|(逻辑或)的时候:

有真则为真,全假则为假(有真必真,全假为假)



逻辑与和短路与的区别:逻辑与的判断方式是:

从左到右依次判断,直到结尾(逻辑全程运算)



短路与的判断方式是: 

从左到右依次判断,直到出现false为止将不再判断,直接得到结果为false(短路遇false就停)


逻辑或和短路或的区别 逻辑或的判断方式是:

从左到右依次判断,直到结尾


短路或的判断方式是: 

从左到右依次判断,直到出现true为止将不再判断,直接得到结果为true


&&短路特性测试代码:

package com.study;
/**
 * 测试&&和||的短路特性
 * @author Oliver
 *
 */
public class Demo10 {

	public static void main(String[] args) {
		int x=0;
		int y=0;
		int k=0;
		for(int z=0;z<5;z++) {
			if((++x>2)&&(++y>2)&&(++k>2)) {
				x++;
				y++;
				k++;
			}
		}
		System.out.println(x+" "+y+" "+k);

	}

}

在for循环设置断点,进行断点调试且查看变量:
初始:x、y、k、z都为0


开始单步调试:

第一次执行完z=1的if判断,
【学习随记】短路与非短路的运算符_第1张图片
这个时候,&&的短路特性就已经显示出来了,x作为第一个if中的语句,判断为false之后,&&后面的语句不再执行,直接进行下一次for循环。

以下表格对应Z、X、Y、K变化过程。

0     1 0 0
1 2 0 0
2 3 1 0
3 4 2 0
4 5 3

1

你可能感兴趣的:(学习随记)