/* * 逻辑运算符——不论是什么条件都要执行左右两边代码 * 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的 * 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。 * * 并联电路两个开关只要有一个开关闭合,电路就会通。 * 类似于短路或(||),只要有其中一个为true(开关闭合)是就不必执行右边的代码 * 并联电路两个开关其中有一个开关没有闭合(false),电路不会通,要继续执行右边的代码。 * * 串联电路(&&)原理是必须是两个开关都闭合电路才能通,所以原理可想而知咯! * 左边的开关闭合(true)仍需判断右边的开关是否闭合,所会执行右边的代码。 * 左边的开关没有闭合(false) 不用执行右边的代码。 * 因为左边开关没有闭合!右边的开关无论是否闭合电路都不会通电,所以不执行右边的代码。 * * ——不知不觉突然回顾了那么多年前的物理课知识,多少回忆涌上心头, * 记得那时候拆了好多家里的电池,到处找小灯泡去连接电路, * 有时候电路短路,弄的火光闪烁... */ int a = 0; int b = 0; int c = 0; int d = 0; /* flag = true 逻辑或1 短路或0 逻辑与1 短路与1 flag = false 逻辑或1 短路或1 逻辑与1 短路与0 */ boolean flag = false; // | 和 || 的区别 if(flag | a++ > 10) { System.out.println("逻辑或" + a); }else { System.out.println("逻辑或" + a); } if(flag || b++ >10) { System.out.println("短路或" + b); }else { System.out.println("短路或" + b); } // & 和 && 的区别 if(flag & c++ > 10) { System.out.println("逻辑与" + c); }else { System.out.println("逻辑与" + c); } if(flag && d++ >10) { System.out.println("短路与" + d); }else { System.out.println("短路与" + d); }