2.5.1 算术运算符

2.5.1 算术运算符

算术运算符是数学上最常用的一类运算符,Java语言为浮点数和整形数提供了多种算术操作符,包括+、−、*、/ 等。在表达式中,由于算术运算符中操作数数目的不同,算术运算符可以分为一元运算符和二元运算符。

1.二元运算符

二元运算符是指算术运算符的两侧都有操作数。二元运算符如表2-4所示:

表2-4 二元运算符

img15

注意:String数据类型的“+”运算符,若两操作数都是串,“+”表示连接。

2.一元运算符

一元运算符是指运算符只需要一个操作数。常见的一元运算符如表2-5所示。

表2-5 一元运算符

img16

a+1与a++是相同的,但是++运算符放在操作数的前面或后面是不同的。

作为前缀,运算符先于变量;++a;作为后缀,运算符跟随变量;a++。

如:a=10;

a2=++a;;

这代码相当于 a=10;a=a+1;a2=a;

因此结果为: a 与a2都为11。

又如:

a=10;

a2=a++;

这代码相当于 a=10;a2=a;a=a+1;

因此结果变为:a 为11,a2为10。

减量运算符也能用于前缀和后缀的形式。

如果运算符是在表达式的左边,表达式的值在赋值前先修改。相反,当运算符在表达式的右边,在赋值发生后再增值或减值。

【例2-2】将一元操作符放在变量前或变量后,输出其操作结果。

img17

程序运行结果如下:

img18

【程序说明】

查看例题结果,会看到自加、自减运算符放在操作数之前和放在操作数之后,两者的运算方式是不相同的。若放在操作数前,先进行自加/自减运算,再将结果作为表达式进行赋值运算;若放在操作数之后,则先作为表达式进行赋值运算,再进行自加/自减运算。

3.算术运算符的优先级

所谓优先级是指当一个表达式中出现多个不同运算符时,执行运算的先后次序就是运算符的优先级,例如我们中学所学的先乘除后加减就是这样一个实例。

下面是算术运算符的优先级,优先级从高到低排队,数字越小表示优先级越高。

表2-6 算术运算符的优先级

img19

【例2-3】输出加减乘除混合运算的结果,注意算术运算符的优先级。

img20

程序运行结果如下:

img21

【程序说明】

程序中“b*++a”如果不能判断优先级就会出现计算错误,为了避免这种情况的发生,书写时可以采用“d=b*(++a);”。