运算符

算术运算符包括通常的加(+)、减(一)、乘(*)、除(／)、取模(％)，完成整型或浮点型数据的算术运算。

许多语言中的取模运算只能用于整型数，Java对此有所扩展，它允许对浮点数进行取模操作。

此外，算术运算符还有“++”、“一一”两种，分别表示加1和减1操作。与C++类似,“++i”和“i++”的执行顺序稍有不同，前者在i使用之前加1，后者先使用再加1。“--i”与“i--”的情况与此类似。

算术运算符用在数学表达式中，其用法和功能与代数学（或其它计算机语言）中一样，Java 定义了下列算术运算符：

表 1-4 运算符含义

运算符 | 运算
+ | 加法
- | 减法（一元减号）
* | 乘法
/ | 除法
% | 模运算
++ | 递增运算
+= | 加法赋值
-= | 减法赋值
*= | 乘法赋值
/= | 除法赋值
%= | 模运算赋值
- - | 递减运算

算术运算符的运算数必须是数字类型。算术运算符不能用在布尔类型上，但是可以用在char类型上，因为实质上在Java 中，char类型是int 类型的一个子集。

## (1)基本算术运算符

基本算术运算符：加、减、乘、除可以对所有的数字类型操作。减运算也用作表示单个操作数的负号。记住对整数进行除法“/”运算时，所有的余数都要被舍去。下面这个简单例子示范了算术运算符，也说明了浮点型除法和整型除法之间的差别。

1. class BasicMath

2. {

3. public static void main(String args[])

4. {

5. System.out.println("Integer Arithmetic");

6. int a = 1 + 1;

7. int b = a * 3;

8. int c = b / 4;

9. int d = c - a;

10. int e = -d;

11. System.out.println("a = " + a);

12. System.out.println("b = " + b);

13. System.out.println("c = " + c);

14. System.out.println("d = " + d);

15. System.out.println("e = " + e);

16. System.out.println("\nFloating Point Arithmetic");

17. double da = 1 + 1;

18. double db = da * 3;

19. double dc = db / 4;

20. double dd = dc - a;

21. double de = -dd;

22. System.out.println("da = " + da);

23. System.out.println("db = " + db);

24. System.out.println("dc = " + dc);

25. System.out.println("dd = " + dd);

26. System.out.println("de = " + de);

27. }

28. }

运行这个程序，输出结果如下：

Integer Arithmetic

a = 2

b = 6

c = 1

d = -1

e = 1

Floating Point Arithmetic

da = 2.0

db = 6.0

dc = 1.5

dd = -0.5

de = 0.5

## (2)模运算符

模运算符“%”的运算结果是整数除法的余数。它能像整数类型一样被用于浮点类型（这不同于C/C++ ，在C/C++ 中模运算符“%”仅仅能用于整数类型）。下面的示例程序说明了模运算符“%”的用法：

1. class Modulus

2. {

3. public static void main(String args[])

4. {

5. int x = 42;

6. double y = 42.25;

7. System.out.println("x mod 10 = " + x % 10);

8. System.out.println("y mod 10 = " + y % 10);

9. }

10. }

运行这个程序，输出结果如下：

x mod 10 = 2

y mod 10 = 2.25

Java 提供特殊的算术赋值运算符，该运算符可用来将算术运算符与赋值结合起来。像下列这样的语句在编程中是很常见的：

a = a +4;

在Java 中，可将该语句重写如下：

a += 4;

该语句使用“+=”进行赋值操作。上面两行语句完成的功能是一样的：使变量a的值增加4 。下面是另一个例子：

a = a % 2;

该语句可简写为：

a %= 2;

在本例中，“%=”算术运算符的结果是a/2的余数，并把结果重新赋给变量a。这种简写形式对于Java 的二元（即需要两个操作数的）运算符都适用。

这种赋值运算符有两个好处。第一，它们比标准的等式要紧凑。第二，它们有助于提高Java 的运行效率。由于这些原因，在Java 的专业程序中，经常会看见这些简写的赋值运算符。

## (3)连接运算

主要是对字符串的连接操作。这个运算符就是“+”操作。在Java里有一项非凡用途：连接不同的字串。

尽管与+的传统意义不符，但用+来做这件事情仍然是非常自然的。

若表达式以一个String起头，那么后续所有运算对象都必须是字串。如下所示：

int x = 0, y = 1, z = 2;

String sString = "x, y, z ";

System.out.println(sString + x + y + z);

在这里，Java编译程序会将x，y和z转换成它们的字串形式，而不是先把它们加到一起。

注意：表达式第一个数值必须是字符串类型。