Java基础-逻辑运算符Logic Operators
spa
做者:尹正杰code
版权声明:原创做品,谢绝转载!不然将追究法律责任。blog
一.逻辑运算符io
逻辑运算符是对布尔值进行操做运算的,常见的有:class
1>.逻辑与(&);
基础
2>.逻辑或(|);im
3>.逻辑异或(^);qq
4>.逻辑非(!);总结
5>.短路与(&&);static
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 ); //true 12 System.out.println( false | true ); //true 13 System.out.println( true ^ false ); //true 14 System.out.println( true ^ true ); //false 15 System.out.println( !true ); //false 16 System.out.println( !false ); //true 17 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) ); //false 13 System.out.println( num ); //2019 14 15 //短路与&&,若是左侧表达式为false,不计算右侧表达式的值了 16 num = 18; 17 System.out.println( (num < 0) && ( ++num > 0) ); //false 18 System.out.println( num ); //18 19 } 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) ); //false 13 System.out.println( num ); //2018 14 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; //false 21 22 System.out.println( isPrime); 23 24 } 25 }