2.7 算术运算符
基本的算术运算符集在第1章中已经介绍。下面是完整的算术运算符:
在Java中,运算符+、-、*、/和在其他计算机语言或代数里的用法相同。它们可以用于所有内置的数值数据类型。它们也能用于char类型的对象。
尽管所有读者都对算术运算符很了解,但是还要需要讲解一些特殊情况。首先,记住当除法(/)用于任何整数运算时,余数部分都将截断。例如,在整数除法中,10/3等于3。可以用求模运算符%来获得这个除法的余数。求模运算符用来获得整数除法的余数。例如,10%3等于1。在Java中,运算符%既可以用于整数类型,也可以用于浮点类型。于是,10.0%3.0也是1。下面的程序说明了求模运算符的用法:
程序的输出如下所示:
可以看到,运算符%对于整数和浮点数都生成余数1。
递增运算符和递减运算符
在第一章中曾经介绍,++和--是Java的递增运算符和递减运算符。将会看到,它们有一些有趣的属性。首先来看看递增运算符和递减运算符到底有什么功能。
递增运算符使操作数加1,递减运算符使操作数减1。于是,
相同。递增运算符和递减运算符都既可以放在操作数前面,也可以放在操作数后面。例如,
在上面的例子中,递增运算符放在操作数前面还是后面没有区别。但是,当递增运算符或递减运算符是一个更大的表达式的一部分时,就有明显的区别。当递增运算符或递减运算符在操作数前面时,Java先执行相应的递增或递减操作,在将获得的值用于表达式剩余部分的计算。如果运算符在操作数后面,Java会先获取操作数的值,然后再递增或递减它。考虑下面的代码:
那么y是10。在以上两个例子中,x都是11。区别在于递增运算符和递减运算符发生的时机。在复杂的算术表达式中,能够控制递增运算符和递减运算符的发生有重大作用。