运算符指明对操作数所进行的运算。按操作数的数目来分,可以有一元运算符(如++、--),二元运算符(如+、>)和三元运算符(如?:),它们分别对应于一个、两个和三个操作数。对于一元运算符来说,可以有前缀表达式(如++i)和后缀表达式(如i++),对于二元运算符来说则采用中缀表达式(如a+b)。按照运算符功能来分,基本的运算符有下面几类:
1.算术运算符(+,-,*,/,%,++,--)
2.关系运算符(>,<,>=,<=,==,!=)
3.布尔逻辑运算符(!,&&,||)
4.位运算符(>>,<<,>>>,&,|,^,~)
5.赋值运算符(=,及其扩展赋值运算符如+=)
6.条件运算符(?:)
7.其它(包括分量运算符?,下标运算符[],实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()等)
本章中我们主要讲述前6类运算符。
§3.1算术运算符
算术运算符作用于整型或浮点型数据,完成算术运算。
一、二元算术运算符,如下表所示
运算符用法描述
+op1+op2加
-op1-op2减
*op1*op2乘
/op1/op2除
%op1%op2取模(求余)
Java对加运算符进行了扩展,使它能够进行字符串的连接,如"abc"+"de",得到串"abcde"。我们将在第七章中讲解。
与C、C++不同,对取模运算符%来说,其操作数可以为浮点数,如37.2%10=7.2。
二、一元算术运算符,如下表所示:
运算符用法描述
++op正值
--op负值
++++op,op++加1
----op,op--减1
i++与++i的区别
i++在使用i之后,使i的值加1,因此执行完i++后,整个表达式的值为i,而i的值变为i+1。
++i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i的值均为i+1。
对i--与--i同样。
例3.1.下面的例子说明了算术运算符的使用
publicclassArithmaticOp{
publicstaticvoidmain(Stringargs[]){
inta=5+4;//a=9
intb=a*2;//b=18
intc=b/4;//c=4
intd=b-c;//d=14
inte=-d;//e=-14
intf=e%4;//f=-2
doubleg=18.4;
doubleh=g%4;//h=2.4
inti=3;
intj=i++;//i=4,j=3
intk=++i;//i=5,k=5
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
}
其结果为:
C:\\>javaArithmaticOp
a=9
b=18
c=4
d=14
e=-14
f=-2
g=18.4
h=2.4
i=5
j=3
k=5