Java运算符详解

Java运算符详解



前言

在Java编程语言中,运算符是构建表达式和执行各种操作(如算术运算、比较运算、逻辑运算和位运算等)的关键组成部分。这些运算符与操作数一起协同工作,实现了程序中的数据处理和计算。

运算符主要包含了以下几个:算术运算符关系运算符(比较运算符)逻辑运算符位运算符条件运算符


分类

一、算术运算符

算术运算符用于执行基本的数学运算。

int a = 5;  
int b = 3;  
  
// 加法运算符  
int sum = a + b; // sum = 8  
  
// 减法运算符  
int difference = a - b; // difference = 2  
  
// 乘法运算符  
int product = a * b; // product = 15  
  
// 除法运算符(对于整数,结果是整数除法)  
int quotient = a / b; // quotient = 1  
  
// 浮点数除法(为了得到精确的小数结果,需要将操作数之一转换为double)  
double doubleQuotient = (double) a / b; // doubleQuotient = 1.6666666666666667  
  
// 取模运算符(求余数)  
int remainder = a % b; // remainder = 2  
  
// 增量运算符  
a++; // a = 6  
b--; // b = 2  
  
// 复合赋值运算符  
a += b; // a = 8 (相当于 a = a + b)  
a -= b; // a = 6 (相当于 a = a - b)  
a *= b; // a = 18 (相当于 a = a * b)  
a /= b; // a = 6 (相当于 a = a / b,但因为是整数除法,结果向下取整)  
a %= b; // a = 0 (相当于 a = a % b)

二、关系运算符(比较运算符)

关系运算符用于比较两个操作数的大小或是否相等,并返回布尔值。

int x = 10;  
double y = 10.5;  
  
// 等于运算符  
boolean isEqual = x == y; // isEqual = false (整数与浮点数比较,类型不同则不相等)  
  
// 不等于运算符  
boolean isNotEqual = x != y; // isNotEqual = true  
  
// 大于、小于、大于等于、小于等于运算符  
boolean isGreaterThan = x > y; // isGreaterThan = false  
boolean isLessThan = x < y; // isLessThan = true  
boolean isGreaterThanOrEqual = x >= y; // isGreaterThanOrEqual = false  
boolean isLessThanOrEqual = x <= y; // isLessThanOrEqual = true

三、逻辑运算符

逻辑运算符用于连接布尔表达式,返回布尔值。

boolean flag1 = true;  
boolean flag2 = false;  
  
// 逻辑与运算符  
boolean andResult = flag1 && flag2; // andResult = false  
  
// 逻辑或运算符  
boolean orResult = flag1 || flag2; // orResult = true  
  
// 逻辑非运算符  
boolean notResult = !flag1; // notResult = false  
  
// 逻辑异或运算符(Java没有专门的异或运算符,但可以通过其他方式实现)  
boolean xorResult = (flag1 && !flag2) || (!flag1 && flag2); // xorResult = true

四、位运算符

位运算符直接对整数类型的二进制位进行操作。

int bit1 = 60; // 二进制:0011 1100  
int bit2 = 13; // 二进制:0000 1101  
  
// 位与运算符  
int andBits = bit1 & bit2; // andBits = 12 (二进制:0000 1100)  
  
// 位或运算符  
int orBits = bit1 | bit2; // orBits = 61 (二进制:0011 1101)  
  
// 位异或运算符  
int xorBits = bit1 ^ bit2; // xorBits = 49 (二进制:0011 0001)  
  
// 位非运算符(注意,位非运算符是对单个数值进行操作的)  
int notBits = ~bit1; // notBits = -61 (二进制:1100 0011 取反后加1,因为int是有符号的)  
  
// 左移运算符  
int leftShift = bit1 << 2; // leftShift = 240 (二进制:1

条件运算符

三目运算符

三目运算符(也称为条件运算符)在Java中用于根据条件判断来赋值。它的语法形式如下:

variable = (condition) ? expression1 : expression2;

这里的condition是一个布尔表达式,如果condition为真(true),则variable被赋值为expression1的结果,否则被赋值为expression2的结果。
例如:

int a = 10;  
int b = 20;  
int max = (a > b) ? a : b; // max 将被赋值为 20,因为 a 不大于 b

运算符的优先级

在Java中,当表达式中包含多个运算符时,运算符的优先级决定了它们执行的顺序。优先级高的运算符会先执行,优先级低的运算符后执行。如果优先级相同,那么会按照从左到右的顺序执行。

以下是一些基本的优先级规则:

  1. 括号内的表达式优先执行。
  2. 单目运算符(如++、–、!、~等)优先级最高。
  3. 算术运算符(如*、/、%等)优先级高于比较运算符(如>、<、==等)。
  4. 比较运算符优先级高于逻辑运算符(如&&、||等)。
  5. 赋值运算符(如=、+=、-=等)优先级最低。

当需要改变默认的优先级顺序时,可以使用括号来明确指定表达式的执行顺序。

例子1:

int result = 1 + 2 * 3 / 4 - 5;

在这个例子中,我们需要根据运算符的优先级来计算。首先,乘法*和除法/的优先级高于加法+和减法-。因此,2 * 3先计算得到6,然后6 / 4得到1(在Java中,整数除法会丢弃小数部分)。接下来,1 + 1得到2,最后2 - 5得到-3。所以result的值是-3。

例子2:

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

这个例子中使用了条件运算符(三目运算符)。首先,(a > b)为false,因为5不大于10。由于条件不满足,所以不会返回a的值,而是计算后面的表达式((b > c) ? b : c)。在这个子表达式中,(b > c)也为false,因为10不大于15。因此,最终返回c的值,即15。所以max的值是15。

例子3:

int complex = 3 + 4 * 2 / (1 - 5) + 7;

这个例子中,首先计算括号内的1 - 5,得到-4。然后,由于除法/的优先级高于加法+和乘法*,所以4 * 2 / -4先计算。4 * 2得到8,然后8 / -4得到-2。接下来,3 + -2得到1,最后1 + 7得到8。所以complex的值是8。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jz_Stu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值