对于所有语言而言,运算符大多数都类似,Java作为一门强类型语言,运算符号在计算上相比,会有点差别。
1)算数运算符
+:加、代表整数、字符串拼接
-:减、代表负数
*:乘
/:除
%:取余
++:自增(在原值的基础上加一)
前++ 先增加后操作 int i=0; int result=++i; i为1 result为1
后++ 先操作后增加 int i=0; int result=i++; i为1 result为0
--:自减(在原值的基础上减一)
前-- 先相减后操作 int i=1; int result=--i; i为0 result为0
后-- 先操作后相减 int i=1; int result=i--; i为0 result为1
2)赋值运算符
= , +=, -=, *=, /=, %=
=:赋值
+=:加等于 a+=b 等于 a=a+b
-=:减等于
*=:乘等于
/=:除等于
%=:模等于
思考如何在两个变量的情况下交换变量如 int a =10; int b=5; 交换后 a=5,b=10
对于这些运算符号,我们唯一需要主要的就是运算的时候,计算结果如果有确定类型的变量去相加,会因为相加结果默认转为int或者double而导致错误。
//这里的数字是没有定义类型声明,所以在运算完毕后,会自动转为byte类型赋值给num1
byte num1 = 10 + 2;
//这里因为num1声明过变量,在运算的时候,因为默认数字为int类型,再根据小转大的自动转换法则,所以结果类型为int,这里会出错误
byte num2 = num1 +10; //Type mismatch: cannot convert from int to byte
赋值符号:
int num = 5;
num += num += 10;
System.out.println(num);//20
赋值符号需要在语句执行完毕以后,才能进行赋值给num,而且num+=10等价于num=num+10;
所以理论上,这段代码可以理解为num=num+num+10;所以这里的结果是20。
然后因为这个特性,我们在做思考题的时候:
如何在两个变量的情况下交换变量如inta=10;intb=5;交换后a=5,b=10,答案是:
a = a + b - (b = a);
这里的话,利用赋值符号的特性,这里先让b=a来进行赋值,但是赋值会在运算完毕后才有效。
这个时候,他们可以理解为a=a+b-(a)而b赋值这个步骤,只有在运算完之后才奏效,所以通过这种方式,来完成只有两个变量,做到交换值。
以上就是开课吧广场小编为大家整理发布的“Java的运算符细解!”一文,更多Java教程相关内容尽在开课吧Java教程频道。
免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
