/*
*运算符之四:逻辑运算符
*
- &–逻辑与----且
- &&–短路与----且
- |–逻辑与----或
- ||–短路或----或
- !逻辑非----非
- ^–逻辑异或----两个不一样就是true,一样为true,不一样为false
- 说明:逻辑运算符操作的都是boolean类型的变量
*/
public class LogicTest {
public static void main(String[] args) {
//区分& 与 &&
//相同点①: & 与 && 的运算结果相同
//相同点②: 党符号左边是true时,二者都会执行符号右边的运算
//不同点:当符号左边是false时,&继续执行符号右边的运算,&&不再执行符号右边的运算
//开发中:推荐使用&&
System.out.println("\"与\"的测试:");
//测试一
System.out.println("测试一:");
boolean b1 = true;
int num1 = 10;
if(b1 & (num1++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num1="+num1);
boolean b2 = true;
int num2 = 10;
if(b2 && (num2++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num2="+num2+"\n");
//测试二
System.out.println("测试二:");
b1 = false;
num1 = 10;
if(b1 & (num1++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num1="+num1);
b2 = false;
num2 = 10;
if(b2 && (num2++>0 )) {//num2++未进行
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num2="+num2+"\n");
//“ && ”是先看左边的一条是否成立,是“true”则看下一条是否为“true”,是“false”,则不进行下一条
//区分:|与||
//相同点①: | 与 || 的运算结果相同
//相同点②: 党符号左边是false时,二者都会执行符号右边的运算
//不同点:当符号左边是true时,|继续执行符号右边的运算,||不再执行符号右边的运算
//开发中:推荐使用||
System.out.println("\"或\"的测试:");
//测试一
System.out.println("测试一:");
boolean b3 = false;
int num3 = 10;
if(b3 | (num3++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num3="+num3);
boolean b4 = false;
int num4 = 10;
if(b4 || (num4++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num4="+num4+"\n");
//测试二
System.out.println("测试二:");
b3 = true;
num3 = 10;
if(b3 | (num3++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num3="+num3);
b4 = true;
num4 = 10;
if(b4 || (num4++>0 )) {
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println("num4="+num4);
}
}
输出:
"与"的测试:
测试一:
我现在在北京
num1=11
我现在在北京
num2=11
测试二:
我现在在南京
num1=11
我现在在南京
num2=10
"或"的测试:
测试一:
我现在在北京
num3=11
我现在在北京
num4=11
测试二:
我现在在北京
num3=11
我现在在北京
num4=10