Java基础——运算符

算术运算符

运算符说明
+
-
*
/
%取模(取余)
++自增
- -自减

参考代码:

//加法运算
int add1 = 2 + 3;
System.out.println("加法运算 add1 = " + add1);
String add2 = 2 + "3";
System.out.println("加法运算 add2 = " + add2);

//减法运算
int minus = 10 - 5;
System.out.println("减法运算 minus = " + minus);

//乘法运算
int multiply = 6 * 6;
System.out.println("乘法运算 multiply = " + multiply);

//除法运算
int divide1 = 4 / 3;
System.out.println("除法运算(整数)divide1 = " + divide1);

//除法运算(小数)
double divide2 = 1.2 / 6;
System.out.println("除法运算(小数)divide2 = " + divide2);

//取模运算
int surplus1 = 9 % 5;
System.out.println("取模运算(都是整数) surplus1 = " + surplus1);
int surplus2 = -9 % 5;
System.out.println("取模运算(被取模数为负数) surplus2 = " + surplus2);
int surplus3 = 9 % -5;
System.out.println("取模运算(取模数为负数) surplus3 = " + surplus3);

//自增运算
int val1 = 5;
int autoAdd1 = (val1++) + 1;
System.out.println("自增运算(++在数值后)autoAdd1 = " + autoAdd1);
int val2 = 9;
int autoAdd2 = (++val2) + 1;
System.out.println("自增运算(++在数值前)autoAdd2 = " + autoAdd2);

//自减运算
int val3 = 5;
int autoMinus1 = (val3--) - 1;
System.out.println("自减运算(--在数值后)autoMinus1 = " + autoMinus1);
int val4 = 9;
int autoMinus2 = (--val4) - 1;
System.out.println("自减运算(--在数值前)autoMinus2 = " + autoMinus2);

运行结果:

加法运算结果 add1 = 5
加法运算结果 add2 = 23
减法运算结果 minus = 5
乘法运算结果 multiply = 36
除法运算结果(整数)divide1 = 1
除法运算结果(小数)divide2 = 0.19999999999999998
取模运算结果(都是整数) surplus1 = 4
取模运算结果(被取模数为负数) surplus2 = -4
取模运算结果(取模数为负数) surplus3 = 4
自增运算结果(++在数值后)autoAdd1 = 6
自增运算结果(++在数值前)autoAdd2 = 11
自减运算结果(--在数值后)autoMinus1 = 4
自减运算结果(--在数值前)autoMinus2 = 7

注意:

  1. 除法运算中,若运算数值都是整数,运算结果只会保留小数点前的整数部分舍弃小数点后的小数部分。
  2. 取模运算中,结果不一定都是整数,若被取模数为负数,负号不可忽略,若取模数为负数,负号可忽略。
  3. 自增和自减运算中,若自增自减运算符在变量前面,则先自增自减再参与运算,若自增自减运算符在变量后面,则先参与运算再自增自减。
  4. 加法运算中,若相加的两个值中有任意一个非数值(字符串),则数值会转换为字符串,然后进行拼接。

赋值运算符

运算符说明
=等于
+=加等于(a += b 相当于 a = a + b)
-=减等于(a -= b 相当于 a = a - b)
*=乘等于(a *= b 相当于 a = a * b)
/=除等于(a /= b 相当于 a = a / b)
%=模等于(a %= b 相当于 a = a % b)

参考代码:

int val1 = 5;
System.out.println("等于 val1 = "+ val1);

val1 += 5;
System.out.println("加等于 val1 = "+ val1);

val1 -= 1;
System.out.println("减等于 val1 = "+ val1);

val1 *= 2;
System.out.println("乘等于 val1 = "+ val1);

val1 /= 4;
System.out.println("除等于 val1 = "+ val1);

val1 %= 3;
System.out.println("模等于 val1 = "+ val1);

运行结果:

等于 val1 = 5
加等于 val1 = 10
减等于 val1 = 9
乘等于 val1 = 18
除等于 val1 = 4
模等于 val1 = 1

a=a+3与a+=3的区别?

byte a = 2;
a = a+3; //错误
a+=3; //正确

a=a+3,会自动转换为int类型,a+=3是会强制转换,如:a=(byte)(a+3);

关系运算符

运算符说明
==相等
!=不等
>大于
<小于
>=大于等于
<=小于等于
instanceof检查是否是类的对象

注意:关系运算符返回的是布尔值(boolean)。

参考代码:

boolean val1 = 3 == 4;
System.out.println("3是否等于4:"+val1);

boolean val2 = 3 > 4;
System.out.println("3是否大于4:"+val2);

boolean val3 = 3 < 4;
System.out.println("3是否小于4:"+val3);

boolean val4 = 9 >= 9;
System.out.println("9是否大于等于9:"+val4);

boolean val5 = 8 <= 9;
System.out.println("8是否小于等于9:"+val5);

boolean val6 = "str" instanceof Object;
System.out.println("str是否是Object类对象:"+val6);

运行结果:

3是否等于4false
3是否大于4false
3是否小于4true
9是否大于等于9true
8是否小于等于9true
str是否是Object类对象:true

注意:instanceof基本类型不能使用,只能引用类型进行比较,比较的是class类对象。

逻辑运算符

运算符说明
&逻辑与
|逻辑或
&&短路与
||短路或
!逻辑非
^逻辑异或

注意:逻辑运算是布尔值(boolean)之间进行运算,返回值也是布尔值。

参考代码:

boolean val1 = true & false;
System.out.println("逻辑与 val1:"+val1);

boolean val2 = true | false;
System.out.println("逻辑或 val2:"+val2);

boolean val3 = true && false;
System.out.println("短路与 val3:"+val3);

boolean val4 = true || false;
System.out.println("短路或 val4:"+val4);

boolean val5 = !true;
System.out.println("逻辑非 val5:"+val5);

boolean val6 = true ^ false;
System.out.println("逻辑异或 val6:"+val6);

boolean val7 = false ^ false;
System.out.println("逻辑异或 val7:"+val7);

boolean val8 = true ^ true;
System.out.println("逻辑异或 val8:"+val8);

运行结果:

逻辑与 val1:false
逻辑或 val2:true
短路与 val3:false
短路或 val4:true
逻辑非 val5:false
逻辑异或 val6:true
逻辑异或 val7:false
逻辑异或 val8:false

注意:异或两个布尔值都相同时,为false,反之为true。

& 和 &&的区别:

  • & :左边无论真假,右边都会进行运算。
  • && :若左边不为真,则右边不参与运算,反之参与运算。

| 和 ||的区别:

  • | :左边无论真假,右边都会进行运算。
  • || :若左边为真,则右边不参与运算,反之右边参与运算。

异或(^)与或(|)的不同之处是,异或当左右都为true时,结果为false。

位运算符

运算符说明
<<左位移
>>右位移
>>>无符号右移
&按位与
|按位或
^按位异或
~取反

扩展:

  • 对于左位移,相当于是乘于2的几次方
    例如:11<<2,相当于11*2^2 = 11 * 4 = 44;
  • 对于右位移,相当于是除于2的几次方
    例如:8>>1,相当于8/2^1 = 8 / 2 = 4;

在计算机中,位运算都是以补码的形式参与运算,详情请访问了解进制和位运算

三元运算符

语法:

(布尔表达式)?表达式1:表达式2

布尔表达式为true时,运算结果是表达式1,否则是表达式2。

参考代码:

//3大于4返回3,否则返回4
int val = 3 > 4? 3:4;
System.out.println("三元运算结果:"+val);

运算结果:

三元运算结果:4

运算符的优先级

在这里插入图片描述


参考文章:

  1. https://blog.csdn.net/qq_46476515/article/details/127335259
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值