1.二元算术运算符
算术运算符对数值型数据,包括整型数和实型数进行基本的四则算术运算:加法(+),减法(-),乘法(*),除法(/)和取余数(%),如表4-1所示。
计算机中,乘法符号是*而不是×,除法符号是/而不是÷。
表4-1 二元算术运算符
程序中的算术表达式与日常的算术运算式写法有所不同,如4×a×c,应该写成4*a*c,不能写成4ac。r2应该写成r*r,例如:
对于比较复杂的算术表达式,应该合理使用(),如应该写成:(x-y)/(x+y)。
%表示为求余运算。算术表达式同样遵循“先乘除后加减”的规则,乘、除和取余运算的优先级高于加、减运算。
+、-、*/%运算符适用于不同类型的数值之间的算术运算。如果运算时两个操作数类型不同,先将精度较低类型的操作数转换为精度较高的类型,然后再进行计算。例如:
1*3的结果为36,结果类型为共同的int整型。
12.*3的结果为实型数36.O,取较高精度的double类型。
11/5的结果为整型数2,两个整型数相除,结果也是整型数。
11.0/5的结果为实型数2.2,取较高精度的double类型。
进行算术运算后的结果值的数据类型,按以下规律确定:
1)运算中如果两个运算数类型相同,则运算的结果值也是同样的类型。
2)如果两个运算数类型不同,Java会先将较低精度的数值转换成精度较高的类型,再进行计算,运算结果取精度较高的那个类型。数据类型精度的顺序是:
byte<short<int<long<float<double
其中byte类型精度最低,double最高。实型数的精度高于整型数。同是实型或整型数类型时,字节数多的类型精度高于字节数少的类型。
当把char类型作为整型数处理时,自动将其转换为int类型。同样,对byte与short类型数据进行运算时,均处理为int整型数后再进行运算。
整型数和实型数进行算术运算时,是先将整型数转换成精度较高的实型数后再进行计算,运算结果也是实型数。比如,实型数和整型数相除,按照运算结果取精度为最高的原则,相除的结果为实型数,如3.0/2.结果为实型数1.5。
使用“/”进行除法运算时,如果两个数为整型数,则相除的结果也为整型数,小数部分将被舍弃。如3/2的结果为l,而不是1.5。
如果两个数是实型数,或其中有一个数是实型数,则相除的结果也是实型数,如3.01 2.0.3.0/2,其结果均为1.5。
如果两个整型数a,b相除并要求保证运算精度,保留小数点后面的数,应该写成1.0木a/b。
“/”和“%”运算符均为除法运算。对于两个整型数a和b,a/b得到两数相除的商,a%b得到两数相除的余数。参加求余数运算的两个操作数多数情况下是整型数。
例如:7/2的结果为3,而7%2的结果为l。
两个实型数相除,也可以求出余数。对于实型数a和b,a/b得到用小数表示的商c,a%b为a/b的余数,其值为a-(b*c的整数),其中e=a/b。如:求商7.253/2.113=3.4325603,求余数7.253%2.113=7.253-2.113术3=0.914,其中3是商3.4325603取整后的值。
2.一元算术运算符
除了以上几个二元算术运算符,还有4个一元运算符:+、一、++(增1)和一一(减1)运算符,如表4-2所示。
表4-2 一元算术运算符
“-”除了作为减号完成算术减法运算外,还用于将一个数符号取反。如:
a=-x;(www.daowen.com)
“+”除了作为加号完成算术加法运算外,还可以作为字符串连接符使用。如:
表示将变量i的值转换为字符串并和“i=”连接在一起,然后输出显示。
【例4-1】算术运算实例。
程序运行结果:
确定表达式中“+”是加法运算符还是字符串连接符,要根据“+”两边的变量、表达式或字面值的类型来判断。无论是加法运算还是字符串连接,都遵从从左向右的顺序进行。如果“+”两边都是数值类型,则为加法运算符。如果其中有一边为字符串,则为字符串连接符,这时自动将另一边的数值转换为字符串,然后进行连接。
【例4-2】“+”的不同功能。
程序运行结果:
下面介绍自增(++)与自减(--)运算。
自增:++,如a++,表示a的值加1。
自减:--,如a--,表示a的值减1。
例如:
自增与自减可分为前缀符号和后缀符号,结果有所不同。
前缀符号:运算符在变量之前,如“++a”,表示先加1,后操作。
后缀符号:运算符在变量之后,如“a++”,表示先操作,后加1。
例如:
【例4-3】++、--运算符前缀和后缀的区别。
程序运行结果:
灵活地运用++运算符可以简化程序,但过分的使用就会降低程序的可读性,也容易得出错误的结果,如以下语句就很难判定结果:
自增与自减只能对单个变量,而不能应用于表达式。
例如:(a++)+(++b)是允许的;而(a+b)++则是错误的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。