教学课件第三章 运算符与表达式.ppt

上传人:春哥&#****71; 文档编号:25377506 上传时间:2022-07-11 格式:PPT 页数:24 大小:576KB
返回 下载 相关 举报
教学课件第三章 运算符与表达式.ppt_第1页
第1页 / 共24页
教学课件第三章 运算符与表达式.ppt_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《教学课件第三章 运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《教学课件第三章 运算符与表达式.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件第三章 运算符与表达式Java语言程序设计语言程序设计第三章第三章辽宁机电职业技术学院辽宁

2、机电职业技术学院Designed By Chiyong2008课题目标课题目标运算符和表达式的概念运算符和表达式的概念1运算符种类及其功能运算符种类及其功能2运算符的优先级运算符的优先级3 3辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008v 运算符是对操作数进行运算的符号。运算符是对操作数进行运算的符号。 按操作符所操作的数目来分,运算符可以分为:一元(单目)运算按操作符所操作的数目来分,运算符可以分为:一元(单目)运算符,二元运算符和三元运算符。其中一元运算符分为前置和后置两符,二元运算符和三元运算符。其中一元运算符分为前置和后置两种。种。 如果按照运

3、算功能来分,运算符可以分为下面几类:如果按照运算功能来分,运算符可以分为下面几类:(1 1)算术运算符()算术运算符(+ +、- -、* *、/ /、% %、+、-)(2 2)位运算符()位运算符(、& &、| |、 、 )(3 3)关系运算符()关系运算符( 、 =、= 右右5 5+-左左 右右6 6左左 右右7 7=左左 右右8 8= =!=左左 右右9 9&左左 右右1010左左 右右1111|左左 右右1212&左左 右右1313|左左 右右1414?:左左 右右1515=+=-=*=/=%=左左 右右1616&=|=右右 左左表表3-1 3-1 运算符优先级与结合性运算符优先级与结合

4、性辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008算术运算符分一元(单目)运算符和二元(双目)运算符。一元运算算术运算符分一元(单目)运算符和二元(双目)运算符。一元运算符只有一个参与运算的操作数,二元运算符有两个参与运算的操作数。符只有一个参与运算的操作数,二元运算符有两个参与运算的操作数。表表3-2列出了算术运算符及其用途和相关说明。列出了算术运算符及其用途和相关说明。运算符运算符用途用途举例举例说明说明+,-自动递增,自动递减自动递增,自动递减+i+i,j-j-i i先自增先自增1,1,再参与运算;再参与运算;j j先参与运算再自减先参与运算再自减1

5、 1+ +,- -取正、负号取正、负号i=i=2525将将2525取负后赋给取负后赋给i i* *乘乘i=15i=15* *2 2将将1515乘以乘以2 2后赋给后赋给i i/ /除除fVar=25.0f / 5fVar=25.0f / 5用用5 5去除去除25.025.0,结果给,结果给fVarfVar,为,为5.05.0% %取余取余j=5%3j=5%3将将5 5除除3 3取余,结果为取余,结果为2 2+ +,- -加、减加、减x=fVar-8.9x=fVar-8.9将将fVarfVar减去减去8.98.9,结果给,结果给x x表表3-2 算术运算符算术运算符算术运算符针对不同数据类型操作

6、数的运算结果符合数据类型转换规则算术运算符针对不同数据类型操作数的运算结果符合数据类型转换规则(见表(见表2-8)。)。辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008容易忽略的错误容易忽略的错误解释解释int a=7/2;int a=7/2;a=3a=3而不是而不是3.03.0double d=7/2.0;double d=7/2.0;d=3.5;d=3.5;int a=9L/3;int a=9L/3;9L/39L/3返回值是返回值是longlong型,不能赋值给型,不能赋值给intint型变量型变量a afloat f=4F+5;float f=4F+

7、5;4F+54F+5相当于相当于4F+5D4F+5D,返回值是,返回值是doubledouble型型1) 1) 一元算术运算符一元算术运算符 一元算术运算符共有四种(自增一元算术运算符共有四种(自增+,自减,自减-,取正值,取正值+ +,取负值,取负值- -),涉及的操作数只有),涉及的操作数只有 一个。其中按一个。其中按+,-运算符前置和后置来分类,只有四种情况,(假设有变量运算符前置和后置来分类,只有四种情况,(假设有变量x x)分别为:)分别为: x+ x+,x- x- 前置运算,表示前置运算,表示x x先参与表达式的运算,然后再自增(减)先参与表达式的运算,然后再自增(减)1 1。 +

8、x +x,-x -x 后置运算,表示后置运算,表示x x先自增(减)先自增(减)1 1,然后再参与表达式的运算。,然后再参与表达式的运算。例例3-13-1:自增减一元运算符示例:自增减一元运算符示例2) 2) 二元算术运算符二元算术运算符 二元算术运算符共有五种(二元算术运算符共有五种(+ +,- -,* *,/ /,取模,取模% %),涉及的操作数有两个。前四种就不作),涉及的操作数有两个。前四种就不作 描述了,取模运算()需要注意的是,它的操作数可以是浮点数,如果其中一个操作数描述了,取模运算()需要注意的是,它的操作数可以是浮点数,如果其中一个操作数 是浮点数,那么运算结果是浮点数,那么

9、运算结果 也是浮点数;如果两个操作数都是泛整型,那么运算结果也是也是浮点数;如果两个操作数都是泛整型,那么运算结果也是整型。整型。例例3-23-2:计算表达式的值:计算表达式的值表表3-3列举了算术运算中常见的错误和容易忽略的盲点列举了算术运算中常见的错误和容易忽略的盲点辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例3-1:自增减一元运算符示例Test.javapublic class Testpublic static void main(String args)int x=2;System.out.println(+x+); /输出x值为2Sys

10、tem.out.println(+(+x);/输出x值为4【代码说明代码说明】此程序的代码可以理解为:此程序的代码可以理解为: System.out.println(+x); /输出输出x值为值为2 x+; /x值为值为3 +x; /x值为值为4 System.out.println(+x); /输出输出x值为值为4辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例3-2:计算表达式的值public class Testpublic static void main(String args)int a=5,b=2;double c=5.0,d=2.0;S

11、ystem.out.println(+a/b); System.out.println(+a%b);System.out.println(+c/d);System.out.println(+c%d);【运行结果运行结果】212.51.0【代码说明代码说明】1)1)若表达式若表达式a/ba/b的除号两边的操的除号两边的操 作数都为整形,则作数都为整形,则“/”/”运运算符代表整除;算符代表整除;2)2)若表达式若表达式a/ba/b的除号两边的操作数有一个为浮点型,则运的除号两边的操作数有一个为浮点型,则运算结果也为浮点型;算结果也为浮点型;3)3)另外注意,表达式另外注意,表达式a%ba%b取模

12、运算符两边的操作数可以为浮取模运算符两边的操作数可以为浮点型。点型。辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008若若a=5a=5、b=2b=2、c=1c=1,求,求c+2c+2* *a+%-da+%-d* *3 3的值?的值?相当于相当于(c+(2(c+(2* *a+)%(-b)a+)%(-b)* *3)=43)=4注意:注意:1) Java中没有幂运算符,而使用中没有幂运算符,而使用Math类的静态方法类的静态方法pow()来实现;()来实现;2) Java中的中的Math提供了大量的数学方法和常量,如求平方根提供了大量的数学方法和常量,如求平方根

13、和圆周率和圆周率等等,使用时的调用格式很简单,如求平方根可以用,使用时的调用格式很简单,如求平方根可以用Math.sqrt(double),表示圆,表示圆周率可以用周率可以用Math.PI。辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008表表3-43-4列出了关系运算符及其用途和相关说明。列出了关系运算符及其用途和相关说明。运算符运算符用途用途举例举例说明说明表达式表达式1 1表达式表达式2 2i i100100i i大于大于100,100,返回返回true,true,否则否则, ,返回返回falsefalse表达式表达式1 1表达式表达式2 2i i10

14、0100i i小于小于100,100,返回返回true,true,否则否则, ,返回返回falsefalse表达式表达式1 1表达式表达式2 2i i128128i i大于等于大于等于128,128,返回返回true,true,否则否则, ,返回返回falsefalse表达式表达式1 1表达式表达式2 2i i1010i i小于等于小于等于10,10,返回返回true,true,否则否则, ,返回返回falsefalse表达式表达式1 1表达式表达式2 2i i8181i i等于大于等于大于81,81,返回返回true,true,否则否则, ,返回返回falsefalse!表达式表达式1 1!

15、表达式!表达式2 2i i!9 9i i不等于不等于9,9,返回返回true,true,否则否则, ,返回返回falsefalse表表3-4 3-4 关系运算符关系运算符辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008JavaJava的移位运算有:左移位运算符的移位运算有:左移位运算符,无符号右移位运算符,无符号右移位运算符,位运算,位运算操作数为整型。表操作数为整型。表3-53-5列出了位运算符及其用途和相关说明。列出了位运算符及其用途和相关说明。运算符运算符用途用途举例举例说明说明按位取反按位取反6401111110按位取反,结果按位取反,结果1000

16、0001左移左移64右移右移64201000000右移右移2位得位得00010000无符号右移无符号右移126101111110右移右移1位得位得00111111&按位与按位与126&6401111110与与01000000按位与,结果按位与,结果01000000按位异或按位异或1266401111110与与01000000按位异或,结果按位异或,结果00111110|按位或按位或126|6401111110与与01000000按位或,结果按位或,结果01111110表表3-5 位运算符位运算符辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008原码原码反码反

17、码补码补码原码:是数原码:是数值转化成的值转化成的对应二进制对应二进制数。数。(如十进制(如十进制3232的原码为的原码为100000100000)反码:原码的反码:原码的按位取反。按位取反。补码:反码加补码:反码加1。正数的原码、反码和补码相同正数的原码、反码和补码相同负数的反码为该数的绝对值原码按位取反,负数的反码为该数的绝对值原码按位取反,补码为反码加补码为反码加1 1,如,如3-63-6表所示表所示辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008正数正数126126负数负数-126-126原码原码 01110111,1110111011111111

18、,11101110反码反码 01110111,1110111010001000,00010001补码补码 01110111,1110111010001000,00100010表表3-6 3-6 正、负数的原码、反码和补码正、负数的原码、反码和补码辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008(1 1)左移位运算符)左移位运算符(带符号左移位运算符)(带符号左移位运算符) 左移位运算时,数值的各位向左移动,高位左移后溢出,舍弃,右侧左移位运算时,数值的各位向左移动,高位左移后溢出,舍弃,右侧补补0 0。例如:例如:32132(带符号右移位运算符)(带符号右

19、移位运算符) 右移位运算时,数值的各位向右移动,低位右移后溢出,舍弃,左侧右移位运算时,数值的各位向右移动,低位右移后溢出,舍弃,左侧高位补入原来高位的值。高位补入原来高位的值。例如:例如:-1261-1261,10001000,00100010右移右移1 1位得位得11001100,00010001,为负数,为负数6363。(3 3)无符号右移位运算符)无符号右移位运算符(添零右位移运算符)(添零右位移运算符) 无符号右移位运算时,数值的各位向右移动,低位右移后溢出,舍弃,无符号右移位运算时,数值的各位向右移动,低位右移后溢出,舍弃,左侧高位补入左侧高位补入0 0(这是与(这是与不同之处)。

20、不同之处)。例如:例如:-1261-1261,10001000,00100010右移右移1 1位得位得01000010100001。从以上介绍可以推导出移位运算规律:从以上介绍可以推导出移位运算规律:n2Xn2X左移位运算(如左移位运算(如XnXnXn)相当于相当于 相当于相当于 表表3-7 3-7 移位运算规律移位运算规律辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008补码为:补码为:11001100,00010001反码为:反码为:10111011,11101110原码为:原码为:10111011,11111111所以结果为所以结果为-63-63,符合

21、表,符合表3-73-7的移位运算规律的移位运算规律示例:求解示例:求解-1261 -1261 根据表根据表3-73-7速算,结果为速算,结果为-63-63,那么结果是如何推导出来的呢?,那么结果是如何推导出来的呢?已知已知-126-126的补码是的补码是10001000,00100010(见表(见表3-63-6),),10001000,0010100101得得11001100,00010001想知道此结果的原值,需再转换为原码,转换规则仍为想知道此结果的原值,需再转换为原码,转换规则仍为“取反加一取反加一”试一试:求解试一试:求解-1271-1271是多少?这无法使用运算规律来速算,只能推导。

22、是多少?这无法使用运算规律来速算,只能推导。想一想:想一想:JavaJava中没有无符号左移运算符,读者可以自行考虑一下为什么?中没有无符号左移运算符,读者可以自行考虑一下为什么?辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008 v 逻辑运算符用于连接关系表达式,对关系表达式的结果进行逻辑运算,逻辑运算符用于连接关系表达式,对关系表达式的结果进行逻辑运算,如如 (关系表达式(关系表达式1 1)&(关系表达式(关系表达式2 2)v 逻辑运算符有!、逻辑运算符有!、&和和|。! !对应对应NOTNOT运算、运算、& & 运算符对应运算符对应ANDAND运算、运

23、算、|对应对应OROR运运表表3-83-8列出了逻辑运算符及其使用方法。列出了逻辑运算符及其使用方法。运算符运算符用途用途举例举例说明说明! !取反运算取反运算!(255125)!(255125)比较表达式为比较表达式为true,true,取反后结果返回取反后结果返回falsefalse&逻辑与运算逻辑与运算(96)&(100125)(96)&(100125)右表达式为右表达式为false,false,结果返回结果返回falsefalse(其一为假,(其一为假,即为假)即为假)|逻辑或运算逻辑或运算(96)|(100125)(96)|(100125)左表达式为左表达式为truetrue,结果为

24、,结果为true true (其一为真,(其一为真,即为真)即为真)表表3-8 3-8 逻辑运算符逻辑运算符例例3-33-3:观测“短路”运算符的效果注意:注意:JavaJava中的!、中的!、&和和|运算符采用了电工学中的运算符采用了电工学中的“短路短路”方式进行运算,方式进行运算,即先求出逻辑运算符左表达式的值,如果其值能够推算出整体表达式的值,就不再运算即先求出逻辑运算符左表达式的值,如果其值能够推算出整体表达式的值,就不再运算右侧表达式,这样加快了程序的执行效率,但是也需要注意其中变量值的变化情况。右侧表达式,这样加快了程序的执行效率,但是也需要注意其中变量值的变化情况。辽宁机电职业技

25、术学院辽宁机电职业技术学院Designed By Chiyong2008例例3-2:计算表达式的值public class Testpublic static void main(String args)int a=2,b=1;System.out.println(+(ab|+b=a);System.out.println(b);【运行结果运行结果】true1【代码说明代码说明】因为逻辑表达式中因为逻辑表达式中abab的值为的值为truetrue,因此整体的表,因此整体的表达式就为达式就为truetrue,右侧的,右侧的+b=a+b=a表达式不再参与运算,表达式不再参与运算,所以所以b b的值

26、仍为的值仍为1 1辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008v 赋值运算符分为赋值运算符分为“=”=”号和复合赋值运算符两种。号和复合赋值运算符两种。 “=”=”号是最简单的赋值运算符,其左边是变量,右边为表达式,表达号是最简单的赋值运算符,其左边是变量,右边为表达式,表达式的运算结果应和左边的变量类型一致,或能转换为左边变量的类型。式的运算结果应和左边的变量类型一致,或能转换为左边变量的类型。int a=3+5; int a=3+5; /正确正确int b=3.0+5; int b=3.0+5; /错误,右值为错误,右值为8.08.0,是,是dou

27、bledouble型型int c=(int) (3.0+5); /int c=(int) (3.0+5); /正确,正确,c c为为8 8double d=a+6; double d=a+6; /正确正确赋值时,应遵循数据类型转换规则(见本书第二章赋值时,应遵循数据类型转换规则(见本书第二章2.32.3节)。节)。 赋值运算符赋值运算符“=”=”还可以同其他运算符结合,实现运算和赋值双重功能,还可以同其他运算符结合,实现运算和赋值双重功能,简称复合赋值运算符。组合方式为:简称复合赋值运算符。组合方式为: = = ;这种赋值的含义为:将变量与表达式进行其他运算符指定的运算,再将运算结这种赋值的含

28、义为:将变量与表达式进行其他运算符指定的运算,再将运算结果赋给变量。果赋给变量。int i=5;int i=5;i+=21;i+=21;相当于执行:相当于执行:i=i+21;i=i+21;结果为结果为i=5+21i=5+21。辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008v 条件运算符(条件运算符(?:?:)是唯一的一个三元运算符,形式为:)是唯一的一个三元运算符,形式为: 表达式表达式1 1?表达式?表达式2 2:表达式:表达式3 3 表达式表达式1 1是关系或布尔表达式,返回值为是关系或布尔表达式,返回值为booleanboolean值,如果表达值,

29、如果表达式式1 1的值为的值为truetrue,则整体表达式的值为表达式,则整体表达式的值为表达式2 2的值;如果如果表的值;如果如果表达式达式2 2值为值为falsefalse,则整体表达式的值为表达式,则整体表达式的值为表达式3 3的值。的值。示例:示例: int a=1800; int salary=a1600?2000:1900; /因为因为a1600结果为结果为true,所以结果,所以结果salary值为值为2000。辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008二三一一v表达式是常量、表达式是常量、变量、运算符和方变量、运算符和方法调用的组合

30、序列,法调用的组合序列,它有确定的值(一它有确定的值(一般为表达式推算后般为表达式推算后最左端的值)。最左端的值)。v语句是带分号语句是带分号(;)结束标志的(;)结束标志的表达式序列,它可表达式序列,它可以有确定的值或无以有确定的值或无返回值方法调用。返回值方法调用。表达式示例:表达式示例:a=(53)&(b3)&(b3)&(b5|c8; boolean a=b5|c8; System.out.println(a=+a); System.out.println(a=+a);结果为:结果为:a=truea=truev 混合运算的复杂表达式中各运算符的优先规则可以简单记忆如下:混合运算的复杂表达

31、式中各运算符的优先规则可以简单记忆如下:算术算术比较比较逻辑逻辑赋值。赋值。这是可以理解的,因为计算出结果才能进行比较,比较后才能得这是可以理解的,因为计算出结果才能进行比较,比较后才能得到逻辑值,有了逻辑值才能进行逻辑运算,最后才能将计算结果到逻辑值,有了逻辑值才能进行逻辑运算,最后才能将计算结果赋值给变量。赋值给变量。v 当然我们可以使用圆括号来改变表达式中各子表达式的优先级,当然我们可以使用圆括号来改变表达式中各子表达式的优先级,如上面的示例可以写成:如上面的示例可以写成:boolean a=(b5)|(c8);boolean a=(b5)|(c8);辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008小结:小结:本章讲述的内容总结如下:v Java 的7种运算符v 运算符的优先级v 表达式和语句的概念本章介绍了6种运算符的用法,部分运算符没有讲述,如动态内存分配new运算符、数组下标运算符 、实例判断运算符instanceof、类或实例成员操作运算符 . 等,他们将在后面相应的章节中讲述。位运算中关于补码的应用是个难点,本书中给出了尽可能简明的解释,请大家细心体会,多做练习。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁