收藏 分销(赏)

第3章 Java运算符、表达式与语句.ppt

上传人:xrp****65 文档编号:13094966 上传时间:2026-01-16 格式:PPT 页数:36 大小:165.50KB 下载积分:10 金币
下载 相关 举报
第3章 Java运算符、表达式与语句.ppt_第1页
第1页 / 共36页
第3章 Java运算符、表达式与语句.ppt_第2页
第2页 / 共36页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章运算符、表达式与语句,本章导读,1.,算术运算符和算术表达式,2.,关系运算符与关系表达式,3.,逻辑运算符与逻辑表达式,4.,赋值运算符与赋值表达式,5.,移位运算符,6.,位运算符,7.,条件运算符,8.,instanceof,运算符,9.,一般表达式,10.,语句概述,11.,分支语句,12.,循环语句,13.,跳转语句,3.1,算术运算符和算术表达式,(,1,)加减运算符,加减运算的结合性是从左到右。加减运算的操作元是,整型或浮点型数据,加减运算符的优先级是,4,级。,(,2,)乘、除和求余运算符,乘、除和求余运算的运算符号为*、,/,、,%,,都是双目运,算符。*、,/,、,%,运算符的结合性是从左到右,例如:,2*3/8,,先计算,2*3,,然后再将得到的结果除以,8,。乘、除,和求余运算的操作元是整型或浮点型数据。*、,/,、,%,运,算符的优先级是,3,级。,(,3,)自增、自减运算符,自增、自减运算的运算符号为:,+,、,-,,都是单目运算符,运算符的优先级是,2,级。运算符可以放在操作元之前,也可以放在操作元之后,但操作元必须是一个整型或浮点型变量(不能是常量或表达式)。运算符的作用是使变量的值增,1,或减,1,,如:,+x,,,-x,表示在使用,x,之前,先使,x,的值加(减),1,。,x+,,,x-,表示在使用,x,之后,使,x,的值加(减),1,。,粗略地看,,+x,和,x+,的作用相当于,x=x+1,。但,+x,和,x+,的不同之处在于,,+x,是先执行,x=x+1,再使用,x,的值,而,x+,是先使用,x,的值再执行,x=x+1,。如果,x,的原值是,5,,则:,对于,y=+x,;,y,的值为,6,。,对于,y=x+,;,y,的值为,5,,然后,x,的值变为,6,。,(,4,)算术表达式,用算术符号和操作元连接起来的符合,Java,语法规则的式子,称为算术表达式。如,x+2*y-30+3*(y+5)-12+n+(-n),。,(,5,)算术混合运算的精度,精度从,“,低,”,到,“,高,”,排列的顺序是:,byte short,int,long float double,Java,将按运算符两边的操作元的最高精度保留结果的精度,例如:,5/2,的结果是,2,,要想得到,2.5,,必须写成,5.0/2,或,5.0f/2,。,char,型数据和整型数据运算结果的精度是,int,。例如:,byte k=18;,那么,H,+k,;,的结果是,int,型,因此下列写法是不正确的,,char,ch,=,H,+k,;,应当写成:,char,ch,=(,char)(,H,+k,);,返回,3.2,关系运算符与关系表达式,关系运算符用来比较两个值的关系,关系运算符的运算结果是,boolean,型数据,当运算符对应的关系成立时,运算结果是,true,,否则是,false,。,(,1,)大小关系运算符,大小关系运算的符号分别是:,、,=,、,、,=,,都是双目运算符,操作元是数值型的常量、变量或表达式。例如,,101,的结果是,true,。在书写时要特别注意的是,“,=,”,是一个完整的符号,在,“,20-17,的结果为,true,,因为算术运算符的级别高于关系运算符,,1020-17,相当于,10,(,20-17,)。,(,2,)等与不等关系,等与不等关系运算的符号分别是:,“,=,”,、,“,!=,”,,都是双目运算符。运算符的级别是,7,级。,“,=,”,和,“,!=,”,都是由,2,个字符组成的一个完整的符号,书写时不要含有空格。注意不要将后面讲述的赋值运算符,“,=,”,与等号运算符,“,=,”,混淆。,(,3,)关系表达式,结果为数值型的变量或表达式可以通过关系运算符形成关系表达式。例如,,2418,,,(,x+y+z,)30+x,等。,返回,3.3,逻辑运算符与逻辑表达式,逻辑运算用来实现,boolean,型数据的逻辑,“,与,”,、,“,或,”,和,“,非,”,运算,运算结果是,boolean,型数据。,(,1,)逻辑,“,与,”,和逻辑,“,或,”,逻辑,“,与,”,和逻辑,“,或,”,运算的符号是:,&,、,|,,是双目运算符,操作元是,boolean,型的变量或求值结果是,boolean,型数据的表达式。,“,&,”,的运算法则是:当,2,个操作元的值都是,true,时,运算结果是,true,,否则是,false,。,“,|,”,的运算法则是:当,2,个操作元的值都是,flase,时,运算结果是,false,,否则是,true,。,“,&,”,和,“,|,”,的级别分别是,11,和,12,级,结合性是左到右。例如,,18&92,的结果为,false,,,18|62,的结果为,true,。由于关系运算符的级别高于,&,和,|,的级别,所以,,18&92,相当于(,18,),&,(,92,)。,逻辑运算符,“,&,”,和,“,|,”,也称做短路逻辑运算符。进行,op1&op2,运算时,如果,op1,的值是,false,,,“,&,”,运算符在运算 时不再去计算,op2,的值,直接就得出,op1&op2,的结果是,false,。当,op1,的值是,true,时,,“,|,”,运算符在运算时不再去计算,op2,的值,直接就得出,op1|op2,的结果是,true,。,(,2,)逻辑,“,非,”,逻辑,“,非,”,运算的符号是:,!,,是单目运算符,操作元在左面。当操作元的值是,TURE,时,运算结果是,FALSE,;反之为,TURE,。,“,!,”,的运算级别是,2,级,结合性从右到左。例如,!,X,相当于,!(!X),。,(,3,)逻辑表达式,结果为,boolean,型的变量或表达式可以通过逻辑运算符形成逻辑表达式。例如,,2418&40,,,x!=0|y!=0,。,返回,3.4,赋值运算符与赋值表达式,赋值运算符:,=,。,赋值运算符是双目运算符,左面的操作元必须是变量,不能是常量或表达式。设,x,是一个整型变量,,y,是一个,boolean,型变量,,x=120,和,y=false,都是正确的赋值表达式,赋值运算符的优先级较低,是,14,级,结合方向右到左。赋值表达式的值就是“,=”,左面变量的值。注意不要将赋值运算符“,=”,与等号运算符“,=”,混淆。,返回,3.5,移位运算符,位运算符用来对二进制位进行操作,分为左移位操作和右移位操作。,(,1,)左移位运算符,左移位运算的符号为:,,是双目运算符。左移位运算符左面的操作元称作被移位数,右面的操作数称作移位量,操作元必须是整型类型的数据。,假设,a,是一个被移位的整型数据,,n,是位移量。,an,运算的结果是通过将,a,的所有位都左移,n,位,每左移一个位,左边的高阶位上的,0,或,1,被移出丢弃,并用,0,填充右边的低位。,对于,byte,或,short,型数据,,an,的运算结果是,int,型精度。当进行,a2,运算时,计算系统首先将,a,升级为,int,型数据,对于正数将高位用,0,填充;负数用,1,填充,然后在进行移位运算。例如,对于,byte a=-8;,1111 1000,在进行,a1,运算时,首先将,1111 1000,生级为,int,型,将高位用,1,填充:,1111,1111,1111,1111,1111,1111,1111,1000,然后在进行移位运算得到,-16,:,1111,1111,1111,1111,1111,1111,1111,0000,因此,如果把,a1,的结果赋值给一个,byte,型变量就必须进行强制转换运算:,byte b=(,byte)(a,1);,在进行,an,运算时,如果,a,是,byte,、,short,或,int,型数据,系统总是先计算出,n%32,的结果,m,,然后进行,am,运算。例如,,a33,的计算结果与,a1,相同。对于,long,型数据,系统总是先计算出,n%64,的结果,m,,然后进行,a,,是双目运算符。假设,a,是一个被移位的整型数据,,n,是位移量。,an,运算的结果是通过将,a,的所有位都右移,n,位,每右移一个位,右边的低阶位被移出丢弃,并用,0,或,1,填充左边的高位,,a,是正数用,0,填充,负数时用,1,填充。因此,,a,每右移一次,如果该数的每一计算有效位都没有从低位移出时,就相当于将,a,除以,2,并舍弃了余数。整数不断右移位的最后结果一定是,0,,而负数不断右移位的最后结果是,-1,。,对于,byte,或,short,型数据,,an,的运算结果是,int,型精度。,在进行,an,运算时,如果,a,是,byte,、,short,或,int,型数据,系统总是先计算出,n%32,的结果,m,,然后进行,am,运算,例如,,a33,的计算结果与,a1,相同。对于,long,型数据,系统总是先计算出,n%64,的结果,m,,然后进行,am,运算。,在下面的,例子,1,中,用户输入移位运算的两个操作元,程序给出右移和左移后的结果。,返回,3.6,位运算符,(,1,),“,按位与,”,运算符,“,&,”,是双目运算符,对两个整型数据,a,、,b,按位进行运算,运算结果是一个整型数据,c,。运算法则是:如果,a,、,b,两个数据对应位都是,1,,则,c,的该位是,1,,否则是,0,。如果,b,的精度高于,a,,那么结果,c,的精度和,b,相同。,(,2,),“,按位或,”,运算符,“,|,”,是双目运算符。对两个整型数据,a,、,b,按位进行运算,运算结果是一个整型数据,c,。运算法则是:如果,a,、,b,两个数据对应位都是,0,,则,c,的该位是,0,,否则是,1,。如果,b,的精度高于,a,,那么结果,c,的精度和,b,相同。,(,3,),“,按位非,”,运算符,“,”,是单目运算符。对一个整型数据,a,按位进行运算,运算结果是一个整型数据,c,。运算法则是:如果,a,对应位是,0,,则,c,的该位是,1,,否则是,0,。,(,4,),“,按位异或,”,运算符,“,”,是双目运算符。对两个整型数据,a,、,b,按位进行运算,运算结果是一个整型数据,c,。运算法则是:如果,a,、,b,两个数据对应位相同,则,c,的该位是,0,,否则是,1,。如果,b,的精度高于,a,,那么结果,c,的精度和,b,相同。,位运算符在操作逻辑型数据时,与逻辑运算符,&,、,|,、!不同的是:位运算要计算完,a,和,b,之后再给出运算的结果。,在下面的,例子,2,中,利用,“,异或,”,运算的性质,对几个字符进行加密并输出密文,然后再解密。运行结果见,图,3-2,。,图,3-2,返回,3.7,条件运算符,条件运算符是一个,3,目运算符,它的符号是:,“,?:,”,,需要连接,3,个操作元,用法如下:,op1,?,op2,:,op3,要求第一个操作元,op1,的值必须是,boolean,型数据。运算法则是:当,op1,的值是,true,时,,op1?op2:op3,运算的结果是,op2,的值;当,op1,的值是,false,时,,op1?op2:op3,运算的结果是,op3,的值。例如,,128?100:200,的结果是,100,;,12,y&x,0?(x+1):y),的值是,int,型数据,结果为,17,。,返回,3.10,语句概述,Java,里的语句可分为以下,5,类:,(,1,)方法调用语句,在第,4,章将介绍类、对象等概念,对象可以调用类中的方法产生行为,如:例子,1,中的,reader.nextInt,();,(,2,)表达式语句,一个表达式的最后加上一个分号就构成了一个语句,称作表达式语句。分号是语句不可缺少的部分。例如,赋值语句:,x=23,;,(,3,)复合语句,可以用,“,”,和,“,”,把一些语句括起来构成复合语句,一个复合语句也称作一个代码块。例如,,z=23+x;,System.out.println(hello,);,(,4,)控制语句,控制语句包括:条件分支语句、循环语句和跳转语句。,(,5,),package,语句和,import,语句,package,语句和,import,语句与类、对象有关,将在第,4,章讲解。,返回,3.11,分支语句,1,条件分支语句,(,1,),if-else,语句,.,if-else,语句是,Java,中的一条语句,由一个“,if”,、“,else”,和两个复合语句按一定格式构成,,if-else,语句的格式如下:,if(,表达式,),若干语句,else,若干语句,一条,if-else,语句的作用是根据不同的条件产生不同的操作,执行法则如下:,if,后面,(),内的表达式的值必须是,boolean,型的。如果表达式的值为,true,,则执行紧跟着的复合语句;如果表达式的值为,false,,则执行,else,后面的复合语句。,(,2,)多条件,if-else,if-else,语句,程序有时需要根据多条件来选择某一操作,这时就可以使用,if-else,if-else,语句。,if-else,if-else,语句是,Java,中的一条语句,由一个“,if”,、若干个“,else if”,、一个“,else”,与若干个复合语句按一定规则构成。语句的格式如下:,if(,表达式,1),若干语句,else if(,表达式,2),若干语句,else if(,表达式,n),若干语句,else,若干语句,有时为了编程的需要,复合语句中可以没有任何语句。一条,if-else,if-else,语句的作用是根据不同的条件产生不同的操作,执行法则如下:,if,以及,else if,后面,(),内的表达式的值必须是,boolean,型的。该语句执行时,首先计算,if,后括号中的表达式的值,如果该表达式的值为,true,,则执行紧跟着的复合语句,然后就结束整个语句的执行;如果,if,后括号中的表达式的值为,false,,就依次再计算后面的,else if,的表达式的值,直到出现某个表达式的值为,true,为止,然后执行该,else if,后面的复合语句,结束整个语句的执行。如果所有的表达式的值都是,false,,就执行,else,后面复合语句,结束整个语句的执行。,在下面的,例子,3,中,用户在键盘输入,3,个数,程序判断这,3,个数能构成什么形状的三角形。,2,switch,开关语句,switch,语句是多分支的开关语句,它的一般格式定义如下:,switch(,表达式,),case,常量值,1,:,若干个语句,break,;,case,常量值,2,:,若干个语句,break,;,case,常量值,n,:,若干个语句,break,;,default,:,若干语句,switch,语句中表达式的值必须是整型或字符型;常量值,1,到常量值,n,必须也是整型或字符型。,switch,语句首先计算表达式的值,如果表达式的值和某个,case,后面的常量值相同,就执行该,case,里的若干个语句,直到碰到,break,语句为止。若没有任何常量值与表达式的值相同,则执行,default,后面的若干个语句。其中,default,是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么,switch,语句就不会进行任何处理。需要注意的是,在同一个,switch,语句中,,case,后的常量值必须互不相同。,下面的,例子,4,使用了,switch,语句,用户在键盘输入一个代表月份的整数,程序输出是该月是在年度的第几季度。,返回,3.12,循环语句,1,while,循环,while,语句的一般格式:,while(,表达式,),若干语句,while,语句由关键字,while,、括号中的一个求值为,boolean,型数据的表达式和一个复合语句组成,其中的复合语句称作循环体,循环体只有一条语句时,大括号“,”,可以省略,但最好不要省略,以便增加程序的可读性。表达式称作循环条件。,while,语句的执行规则是:,(,1,)计算表达式的值,如果该值是,true,时,就进行(,2,),否则进行(,3,)。,(,2,)执行循环体,再进行(,1,),(,3,)结束,while,语句的执行,while,语句执行规则如,流程图,3.5,所示。,while,语句执行规则如,流程图,3.5,所示。,表达式,循环体,true,false,图,3.5 while,循环语句,2,do-while,循环,一般格式:,do,若干语句,while(,表达式,);,do-while,循环和,while,循环的区别是:,do-while,的循环体至少被执行一次,,如,图,3.6,所示。,下面的,例子,5,分别用,while,和,do-while,循环计算常数,e,的近似值:,e=1+1/1+1/2!+1/3!+,。,循环体,表达式,true,false,图,3.6 do-while,循环语句,3,for,循环,for,语句的一般格式:,for(,表达式,1,;表达式,2,;表达式,3),若干语句,for,语句由关键字,for,、括号中用分号分割的,3,个表达式,以及一个复合语句组成,其中的,“,表达式,2,”,必须是一个求值为,boolean,型数据的表达式,而复合语句称作循环体。,for,语句的执行规则是:,(,1,)计算,“,表达式,1,”,,完成必要的初始化工作,(,2,)判断,“,表达式,2,”,的值,若,“,表达式,2,”,的值为,true,,则进行(,3,),否则进行(,4,)。,(,3,)执行循环体,然后计算,“,表达式,3,”,,以便改变循 环条件,进行(,2,)。图,3.9,使用,for,语句,(,4,)结束,for,语句的执行,.,一个数如果恰好等于它的因子之和,这个数就称为,“,完数,”,。例如,,6=1+2+3,。下面的,例子,6,使用,for,循环计算出,1000,内的全部完数,返回,3.13,跳转语句,跳转语句是指用关键,break,或,continue,加上分号构成的语句,例如:,break;,在循环语句的循环体中使用跳转语句。在一个循环中,比如循环,50,次的循环语句中,如果在某次循环体的执行中执行了,break,语句,那么整个循环语句就结束。如果在某次循环体的执行中执行了,continue,语句,那么本次循环就结束,即不再执行本次循环中循环体中,continue,语句后面的语句,而转入进行下一次循环。,下面的,例子,7,和,例子,8,使用的跳转语句。,返回,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服