理论教育 算术运算符-程序设计基础中的算术运算符

算术运算符-程序设计基础中的算术运算符

时间:2023-11-20 理论教育 版权反馈
【摘要】:表4-1 二元算术运算符程序中的算术表达式与日常的算术运算式写法有所不同,如4×a×c,应该写成4*a*c,不能写成4ac。+、-、*/%运算符适用于不同类型的数值之间的算术运算。表4-2 一元算术运算符“-”除了作为减号完成算术减法运算外,还用于将一个数符号取反。

算术运算符-程序设计基础中的算术运算符

1.二元算术运算符

算术运算符对数值型数据,包括整型数和实型数进行基本的四则算术运算:加法(+),减法(-),乘法(*),除法(/)和取余数(%),如表4-1所示。

计算机中,乘法符号是*而不是×,除法符号是/而不是÷。

表4-1 二元算术运算符

978-7-111-34450-6-Chapter04-2.jpg

程序中的算术表达式与日常的算术运算式写法有所不同,如4×a×c,应该写成4*a*c,不能写成4ac。r2应该写成r*r,例如:

978-7-111-34450-6-Chapter04-3.jpg

对于比较复杂的算术表达式,应该合理使用(),如978-7-111-34450-6-Chapter04-4.jpg应该写成:(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 一元算术运算符

978-7-111-34450-6-Chapter04-5.jpg

“-”除了作为减号完成算术减法运算外,还用于将一个数符号取反。如:

a=-x;(www.daowen.com)

“+”除了作为加号完成算术加法运算外,还可以作为字符串连接符使用。如:

978-7-111-34450-6-Chapter04-6.jpg

表示将变量i的值转换为字符串并和“i=”连接在一起,然后输出显示。

【例4-1】算术运算实例。

978-7-111-34450-6-Chapter04-7.jpg

程序运行结果:

978-7-111-34450-6-Chapter04-8.jpg

确定表达式中“+”是加法运算符还是字符串连接符,要根据“+”两边的变量、表达式或字面值的类型来判断。无论是加法运算还是字符串连接,都遵从从左向右的顺序进行。如果“+”两边都是数值类型,则为加法运算符。如果其中有一边为字符串,则为字符串连接符,这时自动将另一边的数值转换为字符串,然后进行连接。

【例4-2】“+”的不同功能。

978-7-111-34450-6-Chapter04-9.jpg

程序运行结果:

978-7-111-34450-6-Chapter04-10.jpg

下面介绍自增(++)与自减(--)运算。

自增:++,如a++,表示a的值加1。

自减:--,如a--,表示a的值减1。

例如:

978-7-111-34450-6-Chapter04-11.jpg

自增与自减可分为前缀符号和后缀符号,结果有所不同。

前缀符号:运算符在变量之前,如“++a”,表示先加1,后操作。

后缀符号:运算符在变量之后,如“a++”,表示先操作,后加1。

例如:

978-7-111-34450-6-Chapter04-12.jpg

【例4-3】++、--运算符前缀和后缀的区别。

978-7-111-34450-6-Chapter04-13.jpg

978-7-111-34450-6-Chapter04-14.jpg

程序运行结果:

978-7-111-34450-6-Chapter04-15.jpg

灵活地运用++运算符可以简化程序,但过分的使用就会降低程序的可读性,也容易得出错误的结果,如以下语句就很难判定结果:

978-7-111-34450-6-Chapter04-16.jpg

自增与自减只能对单个变量,而不能应用于表达式。

例如:(a++)+(++b)是允许的;而(a+b)++则是错误的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈