java-运算符2

关系运算符

  关系运算符(比较运算符)
  >,>=, <, <=, !=, ==

  关系运算符可以比较两个数据之间的关系, 结果只能是布尔类型,如果成立结果就是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的值

猜你喜欢

转载自www.cnblogs.com/ljq697/p/12599679.html