【Java基础学习打卡20】运算符(下)


前言

本文继续介绍运算符中的关系运算符、逻辑运算符,还有三元运算符。在 Java 编程中,运算符起着非常重要的作用,它们用于对数据进行操作和计算。运算符可以帮助我们进行数学运算、逻辑判断、赋值操作等,是编写复杂程序和表达式的基础。


一、关系运算符

在 Java 中,关系运算符用于比较两个值之间的关系,并返回布尔值(truefalse)。Java 提供了以下关系运算符:

  • >:大于
  • >=:大于等于
  • <:小于
  • <=:小于等于
  • ==:等于
  • !=:不等于

接下来将逐一给出示例代码,但是目前只讨论两边操作数是基本数据类型中数值类型的关系运算。

大于(>): 检查左操作数是否大于右操作数,如果是则返回 true,否则返回 false

int a = 5;
int b = 10;
boolean c = (a > b); // false

大于等于(>=): 检查左操作数是否大于或等于右操作数,如果是则返回 true,否则返回 false

int a = 5;
int b = 10;
boolean c = (a >= b); // false

小于(<): 检查左操作数是否小于右操作数,如果是则返回 true,否则返回 false

int a = 5;
int b = 10;
boolean c = (a < b); // true

小于等于(<=): 检查左操作数是否小于或等于右操作数,如果是则返回 true,否则返回 false

int a = 5;
int b = 10;
boolean c = (a <= b); // true

相等(==): 检查两个操作数是否相等,如果相等则返回 true,否则返回 false。在比较的两边操作数都是数值类型的情况下,即使它们的数据类型不相同,只要值相等,就会返回 true

int a = 5;
int b = 10;
float c = 5.0f;
boolean d = (a == b); // false
boolean e = (a == c); // true

不相等(!=): 检查两个操作数是否不相等,如果不相等则返回 true,否则返回 false

int a = 5;
int b = 10;
boolean c = (a != b); // true

二、逻辑运算符

在 Java 中,逻辑运算符用于组合和操作布尔值(boolean)类型的表达式,返回布尔结果(truefalse)。

提供如下逻辑运算符:

  • &:与
  • &&:短路与
  • |:或
  • ||:短路或
  • !:非
  • ^:异或

1.逻辑与运算符

&&& 是逻辑与运算符,作用是对两个布尔表达式进行逻辑与操作,只有当前后两个表达式都为 true 时,结果才为 true,否则结果为 false。使用示例如下:

boolean result = expression1 & expression2;
boolean shortResult = expression1 && expression2;

区别就是 && 具有短路的特性。如果第一个表达式的值为 false,那么第二个表达式不会被计算,因为无论第二个表达式的结果如何,整个逻辑与表达式都会返回 false。这种短路特性可以用来避免不必要的计算或者处理可能引发错误的操作。

public static void main(String[] args) {

	int a = 3;
	int b = 5;
		
	// a>b为false,b>a为true
	boolean c = (a>b) & (b>a); // 两边的表达式都进行计算
	boolean d = (a>b) && (b>a); // 左边表达式为false,不再计算右侧表达式,即短路

	System.out.println(c); // 输出:false
	System.out.println(d); // 输出:false	
}

那么在实际编程中,推荐使用 && 短路与。

2.逻辑或运算符

||| 是逻辑或运算符,作用是对两个布尔表达式进行或操作。如果至少有一个表达式为 true,则结果为 true;只有当两个表达式都为 false 时,结果才为 false。使用示例如下:

boolean result = expression1 | expression2;
boolean shortResult = expression1 || expression2;

|| 是短路逻辑或运算符,也用于两个布尔表达式的逻辑或操作。但是与普通逻辑或运算符 | 不同的是,如果第一个表达式的值为 true,则不会再执行第二个表达式,直接返回 true

public static void main(String[] args) {

	int a = 5;
	int b = 3;
		
	// a>b为true,b>a为false
	boolean c = (a>b) | (b>a); // 两边的表达式都进行计算
	boolean d = (a>b) || (b>a); // 左侧表达式计算为true,不再计算右侧表达式,即短路

	System.out.println(c); // 输出:true
	System.out.println(d); // 输出:true			
}

那么在实际编程中,也是推荐使用 || 短路或。

3.逻辑非运算符

! 是逻辑非运算符,用于对布尔值进行逻辑否定操作。其使用示例如下:

boolean result = !expression;

! 运算符将一个布尔表达式的值取反,即如果原来的布尔值为 true,则取反后为 false;如果原来的布尔值为 false,则取反后为 true

public static void main(String[] args) {

	boolean a = true;
	boolean b = !a; // 取反

	System.out.println(b); // 输出:false	
}

逻辑非运算符 ! 可以用于实现逻辑条件的判断、布尔值的翻转等操作。例如,可以使用 ! 运算符对一个条件进行取反,或者对一个布尔变量进行取反。

4.逻辑异或运算符

^ 是逻辑异或运算符,用于对两个布尔表达式进行异或操作。使用示例如下:

boolean result = expression1 ^ expression2;

逻辑异或运算符 ^ 的操作规则是:当且仅当两个操作数中的一个为 true,另一个为 false 时,结果为 true;如果两个操作数都为 true 或都为 false,则结果为 false

public static void main(String[] args) {
		
	boolean a = true;
	boolean b = false;
	boolean c = a ^ b;

	System.out.println(c); // 输出:true	
}

在上述代码中,ab 变量的布尔值不相同,所以结果为 true。只有两边的值相等(truefalse)时结果为 false

逻辑异或运算符 ^ 可用于逻辑条件的判断、布尔值的翻转等操作。例如,可以使用 ^ 运算符来判断两个布尔值是否不同。

三、三元运算符

三元运算符是一种特殊的条件运算符,也称为条件运算符。它由三个操作数组成,它的语法形式如下:

result = condition ? value1 : value2;

其中,condition 是一个布尔表达式,用于判断一个条件是否成立。如果 conditiontrue,则表达式的值为 value1;如果 conditionfalse,则表达式的值为 value2

三元运算符的工作原理是,首先计算 condition 的值,如果为 true,则返回 value1;如果为 false,则返回 value2

三元运算符在简单的条件判断场景中非常有用,可以在一行代码中根据条件选择不同的值进行赋值。

public static void main(String[] args) {

	int a = 5;
	int b = 10;
	int max = (a > b) ? a : b;

	System.out.println(max); // 输出:10
		
}

上述代码中,根据 (a > b) 的条件判断,如果成立,即 a 大于 b,则将 a 赋值给变量 max,否则将 b 赋值给 max

需要注意的是,三元运算符是右结合的,这意味着在嵌套使用时,可以使用括号来明确运算的顺序。此外,三元运算符的操作数可以是任何类型,但是返回的值必须与赋值目标的类型兼容。


总结

关系运算符用于比较两个值之间的关系,并返回布尔值,比较简单。逻辑运算符有6种,对于逻辑与推荐使用短路与,逻辑或推荐使用短路或。最后是三元运算符,也叫作三目运算符,对于简单的判断,是很有用的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程火箭车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值