关系运算符
关系运算符(比较运算符)
>,>=, <, <=, !=, ==
关系运算符可以比较两个数据之间的关系, 结果只能是布尔类型,如果成立结果就是true,不成立,结果是false。
注意:Java中的等于是两个等号,一个等号是赋值运算符。
//定义变量 int i = 10; int j = 20; int k = 30; //& “与”,并且的关系,只要表达式中有一个值为false,结果即为false System.out.println((i > j) & (i > k)); //false & false,输出false System.out.println((i < j) & (i > k)); //true & false,输出false System.out.println((i > j) & (i < k)); //false & true,输出false System.out.println((i < j) & (i < k)); //true & true,输出true System.out.println("--------"); //| “或”,或者的关系,只要表达式中有一个值为true,结果即为true System.out.println((i > j) | (i > k)); //false | false,输出false System.out.println((i < j) | (i > k)); //true | false,输出true System.out.println((i > j) | (i < k)); //false | true,输出true System.out.println((i < j) | (i < k)); //true | true,输出true System.out.println("--------"); //^ “异或”,相同为false,不同为true System.out.println((i > j) ^ (i > k)); //false ^ false,输出false System.out.println((i < j) ^ (i > k)); //true ^ false,输出true System.out.println((i > j) ^ (i < k)); //false ^ true,输出true System.out.println((i < j) ^ (i < k)); //true ^ true,输出false System.out.println("--------"); //! “非”,取反 System.out.println((i > j)); //false System.out.println(!(i > j)); //!false,,输出true
逻辑运算符
常见的逻辑运算符
- & :与。 有假则假,如果两边都是真,那么整个的结果才是真(true)。
- | :或。 有真则真。如果两边都是假,那么整个的结果才是假(false)
- ^ :异或。 两边相同结果是 false, 如果两边不同结果是 true。
- ! :非。 取反。 对true取非结果是false,对false取非结果是true。
&与&&的区别
相同点:
运算结果都是一样的, 不管是&还是&&,都是有假则假。
不同点:
&:无论左边式子的结果是true还是false,都会去计算右边式子。
&&: 如果式子左边的结果是false,那么就不去计算右边了。这种行为叫做短路行为
int x = 3; int y = 4; System.out.println((x++ > 4) & (y++ > 5)); // 两个表达都会运算 System.out.println(x); // 4 System.out.println(y); // 5 System.out.println((x++ > 4) && (y++ > 5)); // 左边已经可以确定结果为false,右边不参与 运算 System.out.println(x); // 4 System.out.println(y); // 4
三元运算符
格式:
关系表达式 ? 值1 : 值2
(关系表达式的结果只能是布尔类型)
int a = 10; int b = 20; int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值