Java 中的运算符

算术运算符

  • 二元 + - * / %
  • 一元 ++ –

对于数值类型,最小使用计算的数值类型为 int

System.out.println(5 % 2); // 1
System.out.println(4 / 2); // 2
System.out.println(5 / 2); // 2 自动舍去法取整
System.out.println(5.0 / 2); // 2.5
// 算术表达式的结果,也有一个数据类型,它的数据类型为表达式中范围最大的那个数据的数据类型。
// 对于数值类型,最小使用的数值类型为 int
byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 会报错,因为计算时实际上是 int + int
int b3 = b1 + b2;
  • i++ 表示先使用 i 的值,再给 i 的值加 1。
  • ++i 表示先给 i 的值加 1,再使用 i 的值。
// 一元运算符 ++ --
int i = 0;
int j = i++;
System.out.println(i); // 1
System.out.println(j); // 0, i++ 表示先使用 i 的值,再给 i 的值加 1。

int m = 0;
int n = ++m;
System.out.println(m); // 1
System.out.println(n); // 1, ++i 表示先给 i 的值加 1,再使用 i 的值。

赋值运算符

  • = += -= *= /= %=

复合赋值运算符,不会改变数据的类型。

byte b5 = 3;
// b5 = b5 + 10;  // 报错,因为赋值运算符的右边实际上是 int + int
// 复合赋值运算符,不会改变数据的类型
b5 += 10;  // 13, 这样是可以的,因为 += 是复合赋值运算符,它不会改变原有的数据类型。

关系运算符

  • == != > >= < <=
System.out.println(b5 == 13);  // true
System.out.println(b5 == 13.0);  // true

逻辑运算符

  • 非短路逻辑运算符 & | ! ^
  • 短路逻辑运算符 && ||

expr1 逻辑运算符 expr2

每个表达式的数据类型都是布尔类型(true 或 false)。

  • & 逻辑与,两个表达式都为 true 时,结果才为 true,否则为 false。两个表达式都必须计算出结果。
  • | 逻辑或,任意一个表达式为 true 时,结果就为 true,否则为 false。两个表达式都必须计算出结果。
  • ! 逻辑非,一元逻辑运算符,表示取反。
  • && 短路逻辑与,如果根据第一个表达式已经能够推导出结果,后面的表达式就不会执行。
  • || 短路逻辑非,如果根据第一个表达式已经能够推导出结果,后面的表达式就不会执行。
int i5 = 10;
boolean b6 = (i5 > 6) & (i5 < 9); // false
System.out.println(b6);
b6 = (i5 > 20) && (i5++ < 9); // 第二个表达式没有执行(短路了),所以 i5 的值不会变化
System.out.println(b6); // false
System.out.println(i5); // 10

三元运算符

  • exp1 ? exp2 : exp3

如果 expr1 的结果为 true,就执行 expr2,并将其结果返回;否则就执行 expr3,将其结果返回。

int i6;
i6 = i5 > 1 ? 3 + 3 : 4 + 4;
System.out.println(i6); // 6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值