(精品)java基础教程(5).ppt

上传人:s****8 文档编号:69874017 上传时间:2023-01-10 格式:PPT 页数:43 大小:553KB
返回 下载 相关 举报
(精品)java基础教程(5).ppt_第1页
第1页 / 共43页
(精品)java基础教程(5).ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《(精品)java基础教程(5).ppt》由会员分享,可在线阅读,更多相关《(精品)java基础教程(5).ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向对象程序设计、第五章第五章运算符以及运算符以及条件判断结构条件判断结构 学习目标:学习目标:掌握常用的各种运算符 if条件判断语句 switch结构1.算术运算符算术运算符算术运算符包括:算术运算符包括:+,-,*,/,+,-,%没有指数运算没有指数运算Math.pow(2.0,3.0);/2.03.0整数除法整数除法:截去余数:截去余数7/5结果为结果为1取模取模%:返回余数:返回余数7%5结果为结果为2 算术运算符:算术运算符:问题问题?1)-7/5=2)-7%5=3)7%-5=4)5.5%1.0=5)7/-5=6)3/6*12=7)15.25%0.5=8)15.75%0.5=-1-2

2、20.5-100.250.25取模运算的结果符号取模运算的结果符号与第一个操作数相同与第一个操作数相同升级和类型转换升级和类型转换赋值和表达式可能引起计算的数据类型与保存结果的存储位置之间的不匹配。左边的数据类型右边的数据类型:byte num1=53;byte num2=47;long num3;num3=num1*num2;左边的数据类型右边的数据类型:int num1=53;int num2=47;byte num3;num3=num1+num2;左边的数据类型右边的数据类型:int num1=53;int num2=47;byte num3;num3=num1*num2;注意:注意:J

3、ava是强类型语言,因此,在进行是强类型语言,因此,在进行赋值操作赋值操作时要时要对类型进行检查对类型进行检查;自动升级规则自动升级规则 1.(byte1.(byte或或或或 short)opshort)opintintintint 2.(byte2.(byte或或或或 shortshort或或或或 intint)oplonglong)oplonglong3.(byte3.(byte或或或或 shortshort或或或或 intint或或或或 long)opfloatfloatlong)opfloatfloat4.(byte4.(byte或或或或 shortshort或或或或 intint或或

4、或或 longlong或或或或 float)opdoubledoublefloat)opdoubledouble5.charop5.charopintintintint 其中,箭头左边表示参与运算的数据类型其中,箭头左边表示参与运算的数据类型其中,箭头左边表示参与运算的数据类型其中,箭头左边表示参与运算的数据类型opop为运算符为运算符为运算符为运算符(如加、减、乘等如加、减、乘等如加、减、乘等如加、减、乘等)右边表示运算结果的数据类型。右边表示运算结果的数据类型。右边表示运算结果的数据类型。右边表示运算结果的数据类型。如:如:如:如:3+4.53+4.5,因为,因为,因为,因为4.54.5是

5、是是是floatfloat型,所以型,所以型,所以型,所以3 3先被转换为先被转换为先被转换为先被转换为floatfloat型,然型,然型,然型,然后再于后再于后再于后再于4.54.5相加,其结果也为相加,其结果也为相加,其结果也为相加,其结果也为floatfloat型。型。型。型。例例例例:自动升级实例自动升级实例自动升级实例自动升级实例 publicclassPromotionpublicclassPromotion publicstaticvoidmain(Stringpublicstaticvoidmain(Stringargsargs)bytebyteb=10;b=10;charch

6、arc=a;c=a;intint i=90;i=90;floatfloatf=3.5f;f=3.5f;doubled=1.234;doubled=1.234;floatfloatf1;f1;f1=f*b;f1=f*b;intint i1;i1;i1=c+i;i1=c+i;doubled1;doubled1;d1=f1/i1d;d1=f1/i1d;查看结果:Test.java查看结果:Promotion.java public class Agepublic static void main(String args)int ageYears;int ageDays;long ageSeconds

7、;ageYears=Integer.parseInt(args0);ageDays=ageYears*365;ageSeconds=(ageYears*365*24L*60*60);System.out.print(“You are”+ageDays+”days old.”);System.out.print(“You are”+ageSeconds+”seconds old.”);查看结果:Age.java2.关系运算符关系运算符六个六个关系运算符关系运算符:、=、=和和!=用于比较数值类型数据的大小,结果是布尔值用于比较数值类型数据的大小,结果是布尔值例如例如:12;/false3.5!=

8、1;/true51.5=23.0;/true540=654;/true24=3*8;/truebooleantest1=(1010);/test1=false;注意事项注意事项、=只能用来比较两个数值类型只能用来比较两个数值类型数据数据(含含字符类型字符类型)的大小的大小不能用于不能用于Strings、booleans、arrays或其他或其他类型类型3.布尔逻辑运算符布尔逻辑运算符操作数要求是操作数要求是布尔类型数据布尔类型数据,结果为布尔值,结果为布尔值六六个个布尔逻辑运算符布尔逻辑运算符:1)&(逻辑与逻辑与AND)2)|(逻辑或逻辑或OR)3)(逻辑异或逻辑异或XOR)4)!(逻辑非逻

9、辑非NOT)单目运算符单目运算符,即只有一个即只有一个操作数操作数5)&(条件与条件与AND)6)|(条件或条件或OR)短路规则短路规则(&和和|)如果从第一个操作数可以推断出表达式结如果从第一个操作数可以推断出表达式结果,就不再计算第二个操作数果,就不再计算第二个操作数例如例如:if(x=2)&(y!=2)System.out.println(两个条件都为两个条件都为true.);逻辑运算逻辑运算(&和和|)两个两个操作数均会被运算操作数均会被运算(即不采用短路规则即不采用短路规则)例如例如,(birthday=true)|(+age=65)查看结果:J_Boolean.java4.位运算符

10、位运算符位运算符包括:位运算符包括:&、|、和和带符号右移带符号右移2)不带符号右移不带符号右移越越晦涩难懂的,越会被晦涩难懂的,越会被SCJP考到考到(?)移位操作是:先将整数写成二进制形式,然后按移位操作是:先将整数写成二进制形式,然后按位操作,最后产生一个新的数位操作,最后产生一个新的数注意注意:只用于整数只用于整数5.赋值类运算符赋值类运算符赋值类运算符包括:赋值类运算符包括:=、+=、-=、*=、/=、&=、|=、%=op1=op1二元运算符二元运算符op2;等价于等价于op1二元运算符二元运算符=op2;例如:例如:a+=b;等价于等价于a=a+b;i*=2+3等价于等价于?6.条

11、件运算符条件运算符条件运算符条件运算符“?:”的表达式形式为的表达式形式为(op1?op2:op3)其中要求其中要求op1为布尔表达式为布尔表达式Op1的值为的值为true,结果为表达式,结果为表达式op2的值;否则,的值;否则,结果为表达式结果为表达式op3的值的值op2和和op3需要返回相同的数据类型,不能为需要返回相同的数据类型,不能为void例如例如:inti=5;intk=(i=0)?1:-1);int x=5,y=8,z=2int k=x0?x:-x;请问y=?y=|x|7.其他运算符其他运算符其他运算符包括:其他运算符包括:(类型类型)、.、()、instanceof和和new例

12、如:例如:inta=51;charc=(char)a;运算符优先级别运算符优先级别优先级规则:()乘除(从左到右)加减(从左到右)复杂的表达式:C=25-5*4/2-10+4;从左到右的规则求值,结果是:34按照优先级规则求值,结果是:9可以用可以用()来改变优先顺序或使表达式更容易理解来改变优先顺序或使表达式更容易理解例如例如:a+b+c/3(a+b+c)/3JAVA的流程控制语句结构化程序设计的三种基本控制语句顺序结构选择结构三种类型三种类型:if、if/else和和switch循环结构三种类型三种类型:for、while和和do/while按语句书写的先后顺序书写的先后顺序执行在若干路径

13、中有条件地择一有条件地择一执行当某条件成立时,反复执行反复执行一段代码if语句语句if语句的格式是语句的格式是:if(布尔表达式布尔表达式)语句语句或或if(布尔表达式布尔表达式)一条或多条语句一条或多条语句例如例如if(grade=60)System.out.println(Passed);if-else语句语句if-else语句的格式是语句的格式是:if(布尔表达式布尔表达式)语句语句1或语句块或语句块1else语句语句2或语句块或语句块2例如:例如:if(grade=60)System.out.println(Passed!);elseSystem.out.println(Failed!

14、);例例1System.out.println(studentGrade=60?Passed“:Failed);例例2max=(ab?a:b);可以写成:可以写成:if(ab)max=a;elsemax=b;例:比较两个数的大小,并按照从大到小的顺序输出到屏幕上。public class CompareTwo public static void main(String args)double d1=23.4;double d2=56.9;if(d1=d2)System.out.println(d1+”=“+d2);else System.out.println(d2+”=“+d1);多重多重

15、If结构结构 查看结果:Coffee.java If 条件A If 条件B 语句块1else 语句块2注意:else总是与最近的if匹配If 条件A If 条件B 语句块1 else 语句块2测试测试String之间的等同性之间的等同性使用=比较String在内存中的引用是否相等要测试两个字符串之间是否具有等同性用equalsswitchswitch语句形式如下:语句形式如下:语句形式如下:语句形式如下:switchswitch(表达式表达式表达式表达式)casecase判断值判断值判断值判断值1 1:语句块语句块语句块语句块1 1;breakbreak;casecase判断值判断值判断值判断

16、值2 2:语句块语句块语句块语句块2 2;breakbreak;casecase判断值判断值判断值判断值n n:语句块语句块语句块语句块n n;breakbreak;default:default:缺省处理语句;缺省处理语句;缺省处理语句;缺省处理语句;breakbreak;1.1.要注意要注意要注意要注意表达式表达式表达式表达式必须是符合必须是符合必须是符合必须是符合char,bytechar,byte,short,intshort,int类型的表达式,而不能使用类型的表达式,而不能使用类型的表达式,而不能使用类型的表达式,而不能使用booleanboolean类型类型类型类型,浮点类型或浮

17、点类型或浮点类型或浮点类型或longlong类型,也不类型,也不类型,也不类型,也不能为一个字符串;能为一个字符串;能为一个字符串;能为一个字符串;2.2.将将将将表达式的值表达式的值表达式的值表达式的值依次与每个依次与每个依次与每个依次与每个casecase子句中的子句中的子句中的子句中的判断判断判断判断值值值值相比较。如果匹配成功,则执行该相比较。如果匹配成功,则执行该相比较。如果匹配成功,则执行该相比较。如果匹配成功,则执行该casecase子子子子句中常量值后的语句,直到遇到句中常量值后的语句,直到遇到句中常量值后的语句,直到遇到句中常量值后的语句,直到遇到breakbreak语句语句

18、语句语句为止;为止;为止;为止;3.case3.case子句中子句中子句中子句中判断值判断值判断值判断值的类型必须与的类型必须与的类型必须与的类型必须与表达式表达式表达式表达式的类的类的类的类型相容,且每个型相容,且每个型相容,且每个型相容,且每个casecase子句中子句中子句中子句中判断值判断值判断值判断值的值必须的值必须的值必须的值必须是不同的;是不同的;是不同的;是不同的;4.default4.default子句是可选的,当子句是可选的,当子句是可选的,当子句是可选的,当表达式表达式表达式表达式的值的值的值的值与任一与任一与任一与任一casecase中的中的中的中的判断值判断值判断值判

19、断值都不匹配时,就执行都不匹配时,就执行都不匹配时,就执行都不匹配时,就执行defaultdefault后的语句。如果表达式的值与任一后的语句。如果表达式的值与任一后的语句。如果表达式的值与任一后的语句。如果表达式的值与任一casecase中的中的中的中的判断值判断值判断值判断值都不匹配且没有都不匹配且没有都不匹配且没有都不匹配且没有defaultdefault子子子子句,则程序不执行任何操作,直接跳出句,则程序不执行任何操作,直接跳出句,则程序不执行任何操作,直接跳出句,则程序不执行任何操作,直接跳出switchswitch语句,进入后续程序段的执行。语句,进入后续程序段的执行。语句,进入后

20、续程序段的执行。语句,进入后续程序段的执行。多分支选择结构多分支选择结构switch语句语句switch语句的流程如图所示:语句的流程如图所示:表达式表达式表达式表达式breakbreak语句语句语句语句1 1breakbreak语句语句语句语句2 2breakbreak语句语句语句语句n nbreakbreak缺省处理语句缺省处理语句缺省处理语句缺省处理语句后续语句后续语句后续语句后续语句判断值判断值判断值判断值1 1判断值判断值判断值判断值2 2判断值判断值判断值判断值n ndefaultdefault.switch语句的注意点语句的注意点5.5.breakbreak语语语语句句句句用用用

21、用来来来来在在在在执执执执行行行行完完完完一一一一个个个个casecase分分分分支支支支后后后后,使使使使程程程程序序序序跳跳跳跳出出出出switchswitch语语语语句句句句,执执执执行行行行switchswitch语语语语句句句句的的的的后后后后续续续续语语语语句句句句。因因因因此此此此一一一一般般般般情情情情况况况况下下下下,在在在在每每每每个个个个casecase分分分分支支支支后后后后,要要要要用用用用breakbreak来终止后面的来终止后面的来终止后面的来终止后面的casecase分支语句的执行;分支语句的执行;分支语句的执行;分支语句的执行;6.6.在在在在一一一一些些些些

22、特特特特殊殊殊殊的的的的情情情情况况况况下下下下,例例例例如如如如多多多多个个个个不不不不同同同同的的的的casecase值值值值要要要要执执执执行行行行一一一一组组组组相相相相同同同同的的的的操操操操作作作作,可以写成如下形式:可以写成如下形式:可以写成如下形式:可以写成如下形式:casecase判断值判断值判断值判断值n n:casecase判断值判断值判断值判断值n+1n+1:语句语句语句语句 breakbreak;7.7.casecase分支中包括多个执行语句时,可以不用花括号分支中包括多个执行语句时,可以不用花括号分支中包括多个执行语句时,可以不用花括号分支中包括多个执行语句时,可以

23、不用花括号“”括起;括起;括起;括起;8.8.通通通通过过过过if-elseif-else语语语语句句句句可可可可以以以以实实实实现现现现switchswitch语语语语句句句句所所所所有有有有的的的的功功功功能能能能。但但但但通通通通常常常常使使使使用用用用switchswitch语语语语句句句句更简练,且可读性强,程序的执行效率也高;更简练,且可读性强,程序的执行效率也高;更简练,且可读性强,程序的执行效率也高;更简练,且可读性强,程序的执行效率也高;9.9.if-elseif-else语句可以基于一个范围内的值或一个条件来进行不同的操作,但语句可以基于一个范围内的值或一个条件来进行不同的

24、操作,但语句可以基于一个范围内的值或一个条件来进行不同的操作,但语句可以基于一个范围内的值或一个条件来进行不同的操作,但switchswitch语句中的每个语句中的每个语句中的每个语句中的每个casecase子句都必须对应一个单值。子句都必须对应一个单值。子句都必须对应一个单值。子句都必须对应一个单值。查看结果:SwitchTest.java 查看结果:SwitchDaysInMonth.java 例:用例:用例:用例:用switchswitch语句实现学生成绩的百分制到等级制的转换。语句实现学生成绩的百分制到等级制的转换。语句实现学生成绩的百分制到等级制的转换。语句实现学生成绩的百分制到等级

25、制的转换。classclassSwitchDemoSwitchDemo publicstaticvoidmain(Stringpublicstaticvoidmain(Stringargsargs)intint testscoretestscore=88;=88;chargrade;chargrade;switch(testscore/10)switch(testscore/10)/两个整型数相除的结果还是整型两个整型数相除的结果还是整型两个整型数相除的结果还是整型两个整型数相除的结果还是整型 case10:/case10:/此处没有使用此处没有使用此处没有使用此处没有使用breakbreak

26、 case9:case9:grade=A;/grade=A;/值为值为值为值为1010和和和和9 9时的操作是相同的时的操作是相同的时的操作是相同的时的操作是相同的break;break;case8:case8:grade=B;grade=B;break;break;case7:case7:grade=C;grade=C;break;break;case6:case6:grade=D;grade=D;break;break;default:default:grade=F;grade=F;break;break;System.out.println(gradeSystem.out.println(gradeis:+grade);is:+grade);课堂练习编写一个Application程序,输出1到1000之间所有能被3整除又可以被7整除的数。星期三上机实验实验内容:实验4练习1、判断下列表达式是否含有语法错误,如果有,请指出错误原因1)01&(4+6)2)4.2%2.13)aA4)1=1布尔逻辑运算符的操作数只能是boolean型

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

当前位置:首页 > 生活休闲 > 生活常识

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

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