Java操作符复习(4)逻辑操作符
一、长路与和短路与
无论长路与还是短路与,两边的运算单元都是布尔值
都为真时,才为真;任意为假,就为假。
区别:
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了。
/**
* FileName: Demo01.java
* @Description: TODO(用一句话描述该文件做什么)
* All rights Reserved, Designed By Gujiakai
* Copyright: Copyright(C) 2021-2022
* Company Nanjing Xiaozhuang University
* @author: Gu Jiakai
* @version V1.0
* Createdate: 2021年7月4日 下午6:49:27
*
* Modification History
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2021年7月4日 Jaya 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package LogicOperator;
/**
* @ClassName: Demo01.java
* @Description: TODO(用一句话描述该文件做什么)
* @author Gu jiakai
* @version V1.0
* @Date 2021年7月4日 下午6:49:27
*/
public class Demo01 {
public static void main(String[] args) {
int i=2;
System.out.println(i==1&i++==2);//flase。
System.out.println(i);//3。
int j=2;
System.out.println(j==1&&j++==2);//flase。
System.out.println(j);//2。
}
}
//result:
//false
//3
//false
//2
二、示例2:长路或和短路或
无论长路或还是短路或,两边的运算单元都是布尔值。
都为假时,才为假;任意为真,就为真。
区别:
长路或 两侧都会被运算,
短路或 只要第一个是true的,第二个就不进行运算了。
/**
* FileName: Demo02.java
* @Description: TODO(用一句话描述该文件做什么)
* All rights Reserved, Designed By Gujiakai
* Copyright: Copyright(C) 2021-2022
* Company Nanjing Xiaozhuang University
* @author: Gu Jiakai
* @version V1.0
* Createdate: 2021年7月4日 下午6:54:58
*
* Modification History
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2021年7月4日 Jaya 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package LogicOperator;
/**
* @ClassName: Demo02.java
* @Description: TODO(用一句话描述该文件做什么)
* @author Gu jiakai
* @version V1.0
* @Date 2021年7月4日 下午6:54:58
*/
public class Demo02 {
public static void main(String[] args) {
int i=2;
System.out.println(i==1|i++==2);
//**true。i++==2,先比较i是否和2相等,再进行自增运算。
//即i++==2,++i==2,前者是先运算再自增,后者是先自增再运算。
System.out.println(i);//3。
int j=2;
System.out.println(j==2||j++==2);//true。
System.out.println(j);//2。
}
}
//result:
//true
//3
//true
//2
三、示例3:取反
取反!
真变为假,假变为真。
/**
* FileName: Negation.java
* @Description: TODO(用一句话描述该文件做什么)
* All rights Reserved, Designed By Gujiakai
* Copyright: Copyright(C) 2021-2022
* Company Nanjing Xiaozhuang University
* @author: Gu Jiakai
* @version V1.0
* Createdate: 2021年7月4日 下午7:02:56
*
* Modification History
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2021年7月4日 Jaya 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package LogicOperator;
/**
* @ClassName: Negation.java
* @Description: TODO(用一句话描述该文件做什么)
* @author Gu jiakai
* @version V1.0
* @Date 2021年7月4日 下午7:02:56
*/
public class Negation {
public static void main(String[] args) {
boolean b=true;
System.out.println(b);//true。
System.out.println(!b);//false。
}
}
//result:
//true
//false
四、示例4:异或
异或^
不同,返回真;
相同,返回假。
/**
* FileName: Xor.java
* @Description: TODO(用一句话描述该文件做什么)
* All rights Reserved, Designed By Gujiakai
* Copyright: Copyright(C) 2021-2022
* Company Nanjing Xiaozhuang University
* @author: Gu Jiakai
* @version V1.0
* Createdate: 2021年7月4日 下午7:05:53
*
* Modification History
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2021年7月4日 Jaya 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package LogicOperator;
/**
* @ClassName: Xor.java
* @Description: TODO(用一句话描述该文件做什么)
* @author Gu jiakai
* @version V1.0
* @Date 2021年7月4日 下午7:05:53
*/
public class Xor {
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println(a^b);//true。
System.out.println(a^!b);//false。
}
}
//result:
//true
//false
五、示例5:练习-逻辑操作符
/**
* FileName: Exercise_LogicOperator.java
* @Description: TODO(用一句话描述该文件做什么)
* All rights Reserved, Designed By Gujiakai
* Copyright: Copyright(C) 2021-2022
* Company Nanjing Xiaozhuang University
* @author: Gu Jiakai
* @version V1.0
* Createdate: 2021年7月4日 下午7:08:18
*
* Modification History
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2021年7月4日 Jaya 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package LogicOperator;
/**
* @ClassName: Exercise_LogicOperator.java
* @Description: TODO(用一句话描述该文件做什么)
* @author Gu jiakai
* @version V1.0
* @Date 2021年7月4日 下午7:08:18
*/
public class Exercise_LogicOperator {
public static void main(String[] args) {
int i=1;
// 错误:true^true&&true=true。
boolean b=!(i++==3)^(i++==2)&&(i++==3);
System.out.println(b);
System.out.println(i);//错误:4。
// 错因分析:&&是短路与,只要第一个为假,第二个就不计算,
// 因此输出结果为false和3。
}
}
//result:
//false
//3
六、参考答案
略。