Java操作符与自增和自减

数值操作

Java 中的数值操作包括标准的算术运算:加号+、减号-、乘号*、除号/、取余%

运算符 说明 示例 示例结果
+ 2+3 5
10-4 6
* 4*5 20
/ 6/3 2
% 取余 5%3 2

当除法的操作数都是整数时,除法的结果就是整数,小数部分被舍去。
为了实现浮点数的除法,其中一个操作数必须是浮点数。
操作符 % 被称为取余或者取模操作符,可以求得除法的余数。
左边的操作数是被除数右边的操作数是除数。
操作符 % 通常用在正整数上,实际上,它也可用于负整数和浮点值。
只有当被除数是负数时,余数才是负的。

System.out.println("5/2 -> " + 5/2);
System.out.println("5.0/2 -> " + 5.0/2);
System.out.println("-5/2 -> " + -5/2);
System.out.println("-5/-2 -> " + -5/-2);
System.out.println("5%3 -> " + 5%3);
System.out.println("-5%3 -> " + -5%3);
System.out.println("-5%-3 -> " + -5%-3);
System.out.println("3%5 -> " + 3%5);
System.out.println("6%2 -> " + 6%2);
System.out.println("15%7 -> " + 15%7);
System.out.println("21%8 -> " + 21%8);

在程序设计中余数是非常有用的。
例如:偶数 %2 的结果总是0 ,而正奇数%2 的结果总是1。所以,可以利用这一特性来判定一个数是偶数还是奇数。

增强操作符

上面的标准算术运算符可以通过一些结合形成增强操作符

增强运算符实际上是一种简写:

操作符 说明 示例 等价代码
+= 加法赋值操作符 i+=2 i= i+2
-= 减法赋值操作符 i-=2 i= i-2
*= 乘法赋值操作符 i*=2 i= i*2
/= 除法赋值操作符 i/=2 i= i/2
%= 取余赋值操作符 i%=2 i= i%2
int i = 4;
i *= 8-6/3;
System.out.println(i);

增强操作符是最后执行的运算:i *= 8-6/3 相当于 i = (8 - (6/3))*i

自增和自减

上面的增强操作符,还可以简写:

  • 当操作的数是 1 的时候,加法赋值操作符i+=1可以简写为i++
  • 当操作的数是 1 的时候,减法赋值操作符i-=1可以简写为i--

许多语言中,都有 ++--操作符,表示自增自减

自增/自减操作符有两种写法:

  • 操作符++写在变量后面,i++,读作 i加加;操作符--写在变量后面,i--,读作 i减减
  • 操作符++写在变量前面,++i,读作 加加i;操作符--写在变量前面,--i,读作 减减i

不同的写法,有不同的表现效果:

操作符 说明 描述 示例代码(其中i初始值 int i =1;)
++i 加加i 将 i 加1,表达式使用的是i加1后的值 int num = ++i; // num为2,i为2
i++ i加加 将 i 加1,表达式使用的是i的初始值 int num = i++; // num为1,i为2
–i i减减 将 i 减1,表达式使用的是i减1后的值 int num = –i; // num为0,i为0
i– i减减 将 i 减1,表达式使用的是i的初始值 int num = i–; // num为1,i为0
int i = 1;
System.out.println("i++ ->" + i++);
System.out.println("i-- ->" + i--);
System.out.println("++i ->" + ++i);
System.out.println("--i ->" + --i);

如果自增和自减运算同时出现在一个表达式中,理解起来会困难很多:

int i = 1;
int result = i++ + ++i - i-- - --i;
System.out.println(result);



这种经常出现在考试或面试题中,结果会是多少?

上面的表达式相当于 1 + 3 – 3 – 1 .

前++是先自增再使用,后++是先使用再自增
标签: