一、短路与 、长路与 —— &、&&
boolean a = true;
boolean b = false;
System.out.println(a&b);//两边只要有一个是F,结果就是F
//所以第一个是F,第二个就可以不判断了。
//如果第一个是T,第二个就一定会判断。
int c = 1;
int d = 2;
System.out.println(b&(++c == d));//短路与,第一个是F,第二个还会执行
System.out.println(c); //所以这里会是2
System.out.println(b&&(++c == d));//长路与,第一个是F,第二个不会执行
System.out.println(c); //所以这里还是2
/*
false
false
2
false
2
*/
二、短路或、长路或 —— |、||
boolean e = true;
boolean f = false;
System.out.println(e|f);//两边只要有一个是T,结果就是T
//所以第一个是T,第二个就可以不判断了。
//如果第一个是F,第二个就一定会判断。
int g = 1;
int h = 2;
System.out.println(e|(++g == h));//短路与,第一个是T,第二个还会执行
System.out.println(g); //所以这里会是2
System.out.println(e||(++g == h));//长路与,第一个是T,第二个不会执行
System.out.println(g); //所以这里还是2
/*
true
true
2
true
2
*/
三、取反!
真变为假
假变为真
boolean a = true;
System.out.println(a); //输出true
System.out.println(!a);//输出false
四、异或^
不同,返回真
相同,返回假
boolean i = true;
boolean j = false;
System.out.println(i^j);//结果为true
System.out.println(i^!j);//结果为false