一、前言
逻辑运算符 左右都是布尔类型的操作数,表达式的结果也是布尔类型 true或false
二、逻辑运算符
& 逻辑与 只要有一个操作数是false,那么结果一定是false && 短路与 效率高点,只要左边是false,那么右边就不计算,结果一定是false | 逻辑或 只要有一个操作数是true,那么结果一定是true || 短路或 效率高点,只要左边是true,那么右边就不计算,结果一定是true ! 逻辑非 结果相反 ^ 逻辑异或 左右操作数不一样结果是true,左右操作数一样结果是false
三、代码
public class LearnOpra03{ public static void main(String[] args){ // & 逻辑与 只要有一个操作数是false,那么结果一定是false System.out.println("1================================"); System.out.println(true&true); System.out.println(true&false); System.out.println(false&true); System.out.println(false&false); // && 短路与 效率高点,只要左边是false,那么右边就不计算,结果一定是false System.out.println("2================================"); System.out.println(true&&true); System.out.println(true&&false); System.out.println(false&&true); System.out.println(false&&false); // | 逻辑或 只要有一个操作数是true,那么结果一定是true System.out.println("3================================"); System.out.println(true|true); System.out.println(true|false); System.out.println(false|true); System.out.println(false|false); // || 短路或 效率高点,只要左边是true,那么右边就不计算,结果一定是true System.out.println("4================================"); System.out.println(true||true); System.out.println(true||false); System.out.println(false||true); System.out.println(false||false); // ! 逻辑非 结果相反 System.out.println("5================================"); System.out.println(!true); System.out.println(!false); // ^ 逻辑异或 左右操作数不一样结果是true,左右操作数一样结果是false System.out.println("6================================"); System.out.println(true^true); System.out.println(true^false); System.out.println(false^true); System.out.println(false^false); } }
四、结果
五、练习
public class LearnOpra04{ public static void main(String[] args){ int i=1; System.out.println("1================================"); System.out.println((1>2)&&(i++==2));//false System.out.println(i);//1 i=1; System.out.println("2================================"); System.out.println((1>2)&(i++==2));//false System.out.println(i);//2 i=1; System.out.println("3================================"); System.out.println((1<2)&&(i++==2));//false System.out.println(i);//2 i=2; System.out.println("4================================"); System.out.println((1<2)&(i++==2));//true System.out.println(i);//3 i=2; System.out.println("5================================"); System.out.println((1<2)&(++i==2));//false System.out.println(i);//3 } }