付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内容概要 使用if和switch语句編写代码 语句必须至少用一对括号封装所有表达式. 护语句唯i合法参数是布尔,囚此,孑测试只能是能够被解析为布尔或布尔变賢的表达式。 i览要注意布尔赋值匸),它可能被错认为布尔等于(=二)测试:booleanx-fase;if(x=true)/anassignment,sokwillalwaysbetrueJ 对于貝有一个条件语句的护块来说,大括号是选项口但足,耍注意容易使人误解的缩进乜 swilch句只能计Kbyteshort>int和char数据类型.不能这样写:longs-30;switch(s) case参数必须是常霰我者最终变量!不能在<
2、?仇図中包含非最终变按或一个取值范亂 如果switch语句中的条件与-个case值相叽配,则执行将运行switch内在这个相匹配case语句后的所有代码,口到遇到break.或者达到switch语句的结束为止。换句话说,相匹配的购聘只是这个皿血块的入口.但是*除break语你否虬将执行的皿代码并不只是这个相匹配的沁 如果想在没有一个case值匹配条件值时执行一些代码则应该在switch语旬内使用default关键字。 defaull块可以位干珅廿冷块内的任何地方因此,如果没有e施相I兀皿,则将进入default块,如果default不包含breaks则代码将继续执行(直落到switch的结束,
3、或苕貞到遇到break语句为止。使用循环编写代码 血尸语旬在声明内个需要任何参数,但是它有3部分;声明和/或初始化,布尔计算及循环表达式 如!R在向循环内计算或者增加变量,则它必须在该循坏之崗或者在和f循坏声明内声明。 在和循环内声明(不只是初始化)的变蜀不能在尸循环Z外访问(也就是血r循坏下面的代码不能便用该变量人 在伽循环声明的第一部分内能够初始化多个变量;每个变量初始化必须由一个逗号分隔。 不能把数字(IH的C飙格语言)或其他任何不能计算为布尔值的内容作为if语句或循环结构的条件。例如不能这样编写:it(x)除非x是布尔变量“ 即使测试条件不满足,do-while循环也至少将进入循环体一
4、次" 使用break和continue 无标号break语句将停止最内层循环结构的当前循环,执行该循环Z后的下一行代码。、 无标号continue语句将导致最内层循环结构的当询循环停止,检查该循环的条件,如果条件满足,则再次执行该循环。 如果break语句或continue语句是有标号的,则它将在有标号的循环上发生类似的操作,而不是在最内层循环上。 如果continue语句用在循环内,则执行该循坏语句,并再次检査条件。使用try和catch捕获异常 异常有两种形式:检杳异常和非检査异常。 检査异常包括Exception的所有子类型,但不包括扩展RuntimeException的类。
5、检査异常遵守处理或声明规则:任何町能抛出检杏界常的方法(包括调用能够抛出检贪异常方法的方法)必须使用throws关键字声明异常,或者使用适当的try/catch处理异常。 Error或RuntimeException的子类是非检查异常,因此,编译器不强制执行处理或声明规则。你可以自由处理它们,白山声明它们,但是,编译器根本就不关心这些。 如果使用可选的finally块,则将始终调用它,不管在相应try内是否有界常抛出,也不管抛出的异常是否被捕获。 始终调用finally这一规则唯一的例外是如果JVM关闭,finally将不被调用。如果从Cry或catch块调用System,exit()则会导致
6、发生这种情况,在这种情况下,JVM将不启动finally块。 只是因为调用finally并不怠味若它将完成°finally块内的代码自己能够引起异常或者调用System,exit()。 未捕获的异常通过调用栈向后传播,它从抛出该异常的方法幵始,到具有该异常类型相应catch的第一个方法为止,或者到JVM关闭为止(如果该异常到达并且main()通过肖明它“推卸”该异常时,则JVM会关闭)。 可以创建自C的异常,通常通过扩展Exception或其子类之一创建。这些杲常将被看做检査异常,编译器将对这些异常强制执行处理或声明规则。 所有catch块都必须按照从最具体到最通用的顺序排序。例如,
7、如果对于lOException和Exception有一个catch子句,则必须把针对IOException的catch放在前面(按照顺序,在代码中从上到下)。否则,IOException将被catch(Exceptione)捕获,因为catch参数能够捕获这指定的异常或其任何了类型!编译器将禁止定义从不能到达的catch子句(因为它发现更具体的异常将被更通用的cmM首先捕获)。使用断言机制 断言为在开发和调试期间测试假设提供-种方法。 断言通常在测试期间被启用,但在部署期间则被禁用。 assert能够被用作关键字(像在1.4版本中那样)或标识符,但不能同时用作二者。为了编译旧的把用作标识符(例
8、如,方法名称)的代码,请使用javac的-source1.3命令行标志。 默认时,断言在运行时禁用。为了启用它们,请使用命令行标志Y3或-enableassertionso 可以使用或-disableassertions标志选择性地禁用断言° 如果使用不带任何参数的标志启用或禁用断言,则将总体上启用或禁用断言。可以结合启用或禁用开关为某些类和/或包启用断言,而不对其他类/或包启用。 使用-esa或dsa标志能够在系统类中启用或禁用断古。 使用下面语法能够按类启用和禁用断言:java-ea-da:MyClassTestclass 可以以包为基础启用或禁用断言,指定的任何包也包含所有子包
9、(在冃录层次之下的(4)n 不嘤使用断言脸证公有方法的参数口 不耍使用能够引起副作用的断言表达式。不能尿证断言始终运行,因此你不希望操件随着断言是否被启用而改变。 不要使用断咅即使在公有方法内一验证某个代码块将从不会到达对于从不应该到达的代码,可以使用:ascertfalse;如果执行这个assert活句,这使一'个断害锚误被立即哋出. 不要使用能绅引起制作用的断言表达式耳练习流程控制(if和switch)1. 给出以下代码:1. publicclassSwitch22. finalstaticshortx=2;3. publicstaticinty=0;4. publicstatic
10、voidmain(Stringargs)5. for(intz=0;z<3;z+)6. switch(z)7. casey:System.out.print("0");8. casex-1:System.out.print("1");9. casex:System.out.print("2");10. 11. 12. 13. 哪一项是运行结果?A. 012B. 012122C. 在第7行编译失败。D. 在第8行编译失败。E. 在第9行编译失败。F. 运行时抛出异常。2. 给出下面的代码:1. publicclassSwitch2
11、2. finalstaticshortx=2;3. publicstaticinty=0;4. publicstaticvoidmain(Stringargs)5. for(intz=0;z<3;z+)6. switch(z)7. casex:System.out.print("0");8. casex-1:System.out.print("1");9. casex-2:System.out.print("2");10. 11. 12. 13. 哪一项是运行结果?(1)A. 012B. 012122C. 210100D. 21
12、2012E. 在第8行编译失败。F. 在第9行编译失败。3. 给出下面的代码:1. publicclassIf12. staticbooleanb;3. publicstaticvoidmain(Stringargs)4. shorthand=42;5. if(hand<50&!b)hand+;6. if(hand>50);7. elseif(hand>40)8. hand+=7;9. hand+;10. else11. -hand;12. System.out.println(hand);13. 14. 哪一项是运行结果A. 41B. 42C. 50D. 51E.
13、在第5行编译失败。F. 在第6行编译失败。4. Giventhefollowing,1. publicclassSwitch22. finalstaticshortx=2;3. publicstaticinty=0;4. publicstaticvoidmain(Stringargs)5. for(intz=0;z<4;z+)6. switch(z)7. casex:System.out.print("0");8. default:System.out.print("def");9. casex-1:System.out.print("1
14、");break;10. casex-2:System.out.print("2");11. 12. 13. 14. whatistheresult?A. 0def1B. 210def1C. 210defdefD. 21def0def1E. 2120def12F. 210def1def15. 给出以下代码:1. publicclassIf22. staticbooleanb1,b2;3. publicstaticvoidmain(Stringargs)4. intx=0;5. if(!b1)6. if(!b2)7. b1=true;8. x+;9. if(5>
15、;6)10. x+;11. 12. if(!b1)x=x+10;13. elseif(b2=true)x=x+100;14. elseif(b1|b2)x=x+1000;15. 16. 17. System.out.println(x);18. 19. 哪一项是运行结果?A. 0B. 1C. 101D. 111E. 1001F. 1101流程控制(循环)6. 给出下面的代码:1. publicclassWhile2. publicvoidloop()3. intx=0;4. while(1)5. System.out.print("xplusoneis"+(x+1);6.
16、7. 8. 哪一项是正确的?A. 在第1行有一个语法错误。B. 在第1行和第4行有一个语法错误。C. 在第1行、第4行和第5行有一个语法错误。D. 在第4行有一个语法错误。E. 在第4行和第5行有一个语法错误。F. 在第5行有一个语法错误。7. 给出下面的代码:1. classFor2. publicvoidtest()3.4. System.out.println("x="+x);5. 6. 7. andthefollowingoutput,x=0x=1哪两行语句独立地插入到第3行能够产生输出?A. for(intx=-1;x<2;+x)B. for(intx=1;
17、x<3;+x)C. for(intx=0;x>2;+x)D. for(intx=0;x<2;x+)E. for(intx=0;x<2;+x)8. 给出以下代码:1. publicclassTest2. publicstaticvoidmain(Stringargs)3. intI=1;4. dowhile(I<1)5. System.out.print("Iis"+I);6. while(I>1);7. 8. 哪一项是运行结果?A. Iis1B. Iis1Iis1C. 没有输出。D. 编译错误。E. Iis1Iis1Iis1inaninf
18、initeloop.9. 给出下面的代码:11. intI=0;12. outer:13. while(true)14. I+;15. inner:16. for(intj=0;j<10;j+)17. I+=j;18. if(j=3)19. continueinner;20. breakouter;21. 22. continueouter;23. 24. System.out.println(I);25.26.哪一项是运行结果?(1)A. 1B. 2C. 3D. 410. 给出下面的代码:1. intI=0;2. label:3. if(I<2)4. System.out.pri
19、nt("Iis"+I);5. I+;6. continuelabel;7. 哪一项是运行的结果?A. Iis0B. Iis0Iis1C. 编译错误。D. 以上都不对。异常11. 给出下面的代码:1. System.out.print("Start");2. try3. System.out.print("Helloworld");4. thrownewFileNotFoundException();5. try6. out=newFileOutputStream("test.txt");7. out.write(1
20、22);8. 9. catch(IOExceptionio)10. System.out.println("IOError.");11. 12. finally13. out.close();14. 15. 16. 下面哪一项是正确的?A. 程序将成功编译。B. 第4行有一个错误。C. 第6行有一个错误。D. 第9行有一个错误。E. 第13行有一个错误。14. 给出下面的代码:1. publicclassMyProgram2. publicstaticvoidthrowit()3. thrownewRuntimeException();4. 5. publicstaticv
21、oidmain(Stringargs)6. try7. System.out.println("Helloworld");8. throwit();9. System.out.println("Donewithtryblock");10. 11. finally12. System.out.println("Finallyexecuting");13. 14. 15. 哪一项是正确的?(1)A. 程序不能编译。B. 程序将输出:Helloworld,然后将输出:aRuntimeExceptionhasoccurred,然后将输出:Do
22、newithtryblock,最后将输出:Finallyexecuting。C. 程序将输出:Helloworld,然后将输出:aRuntimeExceptionhasoccurred,最后将输出:Finallyexecuting。D. 程序将输出:Helloworld,然后将输出:Finallyexecuting,最后将输出:aRuntimeExceptionhasoccurred。15. 给出下面的代码:1. publicclassRTExcept2. publicstaticvoidthrowit()3. System.out.print("throwit");4.
23、thrownewRuntimeException();5. 6. publicstaticvoidmain(Stringargs)7. try8. System.out.print("hello");9. throwit();10. 11. catch(Exceptionre)12. System.out.print("caught");13. 14. finally15. System.out.print("finally");16. 17. System.out.println("after");18. 19.
24、 哪一项是运行结果?A. hellothrowitcaughtB. 编译失败。C. hellothrowitRuntimeExceptioncaughtafterD. hellothrowitRuntimeExceptionE. hellothrowitcaughtfinallyafterF. hellothrowitcaughtfinallyafterRuntimeException断言16. 下面哪一项是正确的?A. 在一个断言语句中,冒号(:)后面可以跟任何Java表达式。B. 如果一个switch块没有default,添加一条语句是恰当的。C. 在一个断言语句中,如果在冒号后面没有表达
25、式,断言的错误信息将是空的。D. 使用catch子句处理处理断言失败是恰当的。17. 下面哪两项是正确的?A. 显式地抛出一个断言错误有时是一个好的做法。B. 在你认为不可能执行到的地方放一个断言是一个好的做法。C. 私有的getter()和setter()不应当使用断言去验证参数。D. 如果在一个try-catch块中产生了一个断言错误,finally块将被跳过。E. 使用catch块处理断言错误是正确的。18. 给出以下代码:1. publicclassTest2. publicstaticinty;3. publicstaticvoidfoo(intx)4. System.out.print("foo");5. y=x;6. 7. publicstaticintbar(intz)8. System.out.print("bar");9. returny=z;10. 11. publicstaticvoidmain(Stringargs)12. intt=0;13. a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效职场沟通技巧与方案
- 文化继承与教育普及承诺书3篇
- 培训计划进度确认函(3篇)
- 电商营销策略实战指南与案例分析
- 2026年工程项目竣工结算审计整改落实情况
- 2026年中医刮痧拔罐基本操作与禁忌
- 2026年航空货运公司安全管理工作计划及危险品运输措施
- 2026年远程项目冲突调解最佳实践
- 2026年饮水机干烧引发火灾事故原因与温控器作用
- 2026年培训师 AI 辅助课程开发与教学应用课程大纲
- 机器损坏险培训课件
- 诊所收费室管理制度
- 趣味数学比赛题
- CJ/T 192-2017内衬不锈钢复合钢管
- 2025年电工三级(高级工)理论100题及答案
- T/CSWSL 002-2018发酵饲料技术通则
- 基本公共卫生孕产妇健康管理培训课件
- 集成电路封装与测试 课件 封装 11.1切筋成型
- 2025年《家校共育共话成长》一年级下册家长会课件
- 第二单元第1课《观照自然》教学设计 2025人美版美术七年级下册
- 《高速铁路动车乘务实务(第3版)》 课件 项目二任务3复兴号智能动车组列车车内设备设施
评论
0/150
提交评论