Java定义的算术运算符如下表所示:
运算符
|
含义
|
+
|
加(也称作一元加)
|
–
|
减(也称作一元减)
|
*
|
乘 |
/
|
除
|
%
|
求余
|
++
|
自增
|
—
|
自减
|
Java中的+,-,*和/运算符与其他计算机语言(或代数)中的一样.这些运算符可以应用于任何内置数值数据类型,也可以应用于char类型的对象.
尽管非常熟悉算术运算符的操作,但是存在一些特殊情况:首先,当/用于整除时,任何余数都将被删除.Java以及其他语言都可以使用%,得出的是整除的余数.%可以应用于整数类型和浮点类型.因此10.0%3.0也是1.
public static void main(String args[]) { int iresult,irem; double dresult,drem; iresult = 10 / 3; irem = 10 % 3; dresult = 10.0/3.0; drem = 10.0 % 3.0; System.out.println("result and remainder of 10 / 3 :"+iresult+" "+irem); System.out.println("result and remainder of 10.0 / 3.0 :"+dresult+" "+drem); }
输出
result and remainder of 10 / 3 :3 1 result and remainder of 10.0 / 3.0 :3.3333333333333335 1.0
正如你所看到的,对于整数类型和浮点类型操作,%都得到了余数1.
自增和自减
++和–分别是Java的自增和自减运算符.他们的一些特殊属性使其变得十分有趣.我们首先详细回忆一下自增和自减运算符的作用.
自增运算符对操作数加1,而自减运算符对操作数减1.因此,下面两条语句效果是一样的:
x = x + 1; x++;
而下面这两条语句的效果也是一样的:
x = x - 1; x--;
自增和自减运算既可以放在操作数的前面(前缀)也可以放在操作数的后面(后缀):
前缀形式: ++x;
后缀模式: x++;
在前述示例中,自增运算符做为前缀和后缀是没有区别的,然而,当自增或自减运算符作为较大表达式的一部分时,情况就大相径庭了.当自增或自减运算符在操作数之前,Java会在表达式的其余部分使用操作数之前先对操作数进行运算.如果自增或自减运算符在操作数之后,Java会先将操作数的值用于表达式,然后再进行自增或自减操作:
x = 10; y = x++; //y=10 x = 10; y = ++x; //y=11