逻辑运算符
逻辑运算符的分类:
&(并且):与运算,运算两端都是真,结果才为真,只要任意一段为假,最终结果都为false
|(或者):或运算,运算两端任意一端为真,结果都为真,只有两段都为假,结果才为假
!(非):为取反 true变false false变true
^(异或):相同为false 不同为true
&&(短路与):两个 & 只要前一个运算结果为false,那么将不会进行第二个运算。
||(短路或):两个 | 只要前一个运算结果为true,那么将不会进行第二个运算。
实例:
int a=10;
int b=20;
boolean flag;
boolean flag1;
boolean flag2;
boolean b1;
boolean b2;
boolean b3;
flag = 10==a & b<a; //与运算,运算两端都是真,结果才为真,只要任意一段为假,最终结果都为false
System.out.println(flag);//打印运算的结果
flag1 = a==10 & b>a;
System.out.println(flag1);
flag2 = a==10 | b>a;//或运算,运算两端任意一端为真,结果都为真,只有两段都为假,结果才为假
System.out.println(flag2);//打印运算的结果
// ! 为取反 true变false false变true
System.out.println(!!flag);//对flag取两次反,结果不变
//^ 为异或 相同为false 不同为true
b1 = true ^ true; //运算两端的结果都为都为true,所以结果为false
b2 = false ^ false; //运算两端的结果都为都为true,所以结果为false
b3 = false ^ true;//运算两端结果不同,所以结果为true
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);