逻辑运算符与自增符号的运用
逻辑运算符
&&(短路与):一个为false,全为false
||(短路或):一个为true,全为true
!(取反):若为true,取反后为false
&(逻辑与):一个为false,全为false
|(逻辑或):一个为true,全为true
^(逻辑异或):两条件相同为false,不同(一个为true,一个为false)为true
重点
&&(短路与):若第一条件为false,则后续不再判断(常用)
&(逻辑与):两个条件都要判断
||(短路或):若第一个为true,则后续不再判断(常用)
|(逻辑或):两个条件都要判断
自增/减算算术运算符
重点
++(自增):
先取值后运算,a++;
先运算,++a
逻辑运算符与自增符号的运用
重点:
短路:首先判断第一个条件,
短路与:若为false则不做后续判断;
短路或:若为true则不做后续判断
逻辑:两个条件都需判断
public class samp_2{
public static void main(String[] args){
//短路与
int a=1;
int b=1;
if(a++==2&&++b==2){
a=3;
}
System.out.println("短路与:a="+a+",b="+b);
//先判断a,先运算后赋值,判断a==2为false;
//不再做后续判断;
//不满足条件,输出时,a为2,b为1
//逻辑与
int a1=1;
int b1=1;
if(a1++==2&++b1==2){
a1=3;
}
System.out.println("逻辑与:a1="+a1+",b1="+b1);
//先判断a1,先运算后赋值,判断a1==2为false;
//继续做后续判断b1,先赋值,判断b1==2为true;
//不满足条件,输出时,a1为2,b1为2
//短路或
int a2=1;
int b2=1;
if(a2++==2||++b2==2){
a2=3;
}
System.out.println("短路或:a2="+a2+",b2="+b2);
//先判断a,先赋值后运算,判断a2==2为false;
//继续做后续判断b2,先赋值,判断b2==2为true;
//满足条件,a2为3,b2为2
//逻辑或
int a3=1;
int b3=1;
if(a3++==2|++b3==2){
a3=3;
}
System.out.println("逻辑或:a3="+a3+",b3="+b3);
//先判断a,先赋值后运算,判断a2==2为false;
//继续做后续判断b2,先赋值,判断b2==2为true;
//满足条件,a2为3,b2为2
}
}