Java基础-逻辑运算符Logic Operators
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.逻辑运算符
逻辑运算符是对布尔值进行操作运算的,常见的有:
1>.逻辑与(&);
2>.逻辑或(|);
3>.逻辑异或(^);
4>.逻辑非(!);
5>.短路与(&&);
6>.短路或(||);
总结规律如下:
1>."&":只有两个操作数都是true,结果才是true,其余都是false;
2>."|":只要有一个操作数是true,结果就是true,其余都是false; 3>."!":取反,true变false,false变true; 4>.单操作数的只有一个; 5>.异或的含义:求异,只有两个操作数不同,整个表达式才为true;
二.案例展示
1>.逻辑运算符的操作数与布尔值
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class LogicDome{ 8 public static void main(String[] args){ 9 10 //逻辑运算符的操作数与布尔值11 System.out.println( true & true ); //true12 System.out.println( false | true ); //true13 System.out.println( true ^ false ); //true14 System.out.println( true ^ true ); //false15 System.out.println( !true ); //false16 System.out.println( !false ); //true17 18 }19 }
2>.短路与&&,操作结果与逻辑&一样(推荐使用)
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class LogicDome2{ 8 public static void main(String[] args){ 9 10 //短路与&&,操作结果与逻辑&一样11 int num = 2018;12 System.out.println( (num < 0) & ( ++num > 0) ); //false13 System.out.println( num ); //201914 15 //短路与&&,如果左侧表达式为false,不计算右侧表达式的值了16 num = 18;17 System.out.println( (num < 0) && ( ++num > 0) ); //false18 System.out.println( num ); //1819 }20 }
3>.短路或||,如果左侧为true,不计算右侧表达式的值了(推荐使用)
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class LogicDome3{ 8 public static void main(String[] args){ 9 10 //短路与||,如果左侧为true,不计算右侧表达式的值了11 int num = 2018;12 System.out.println( (num > 0) || ( ++num > 0) ); //false13 System.out.println( num ); //201814 15 }16 }
4>.逻辑运算符经常用于链接多个布尔表达式
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class LogicDome4{ 8 public static void main(String[] args){ 9 10 //逻辑运算符经常用于链接多个布尔表达式11 int year = 2018; 12 13 /**14 判断某一年是否为闰年:15 能被4整除但是不能被100整除 || 直接能被400整除16 (能被4整除 && 不能被100整除) || 直接能被400整除17 (year%4==0 && year%100!=0) || year%400==0;18 */19 20 boolean isPrime = (year%4==0 && year%100!=0) || year%400==0; //false21 22 System.out.println( isPrime);23 24 }25 }