`
凌紫冥
  • 浏览: 25612 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java编程思想第四版——第十二天

    博客分类:
  • Java
 
阅读更多
2012-04-09
102-108/913

Java编程思想第四版——第十二天

4.6 break和continue
在任何迭代语句的主体部分,都可用break和continue控制循环的流程。Break用于强行退出循环,不执行循环中剩余的语句。Continue停止执行当前的迭代,退回循环起始处,开始下一次迭代。
通常,只有在不知道中断条件何时满足时,才需要这样使用break。
编译器将while(true)和for(;;)看做是同一回事,具体选用哪个取决于编程习惯。

4.7 臭名昭著的goto
Goto起源于汇编语言的程序控制:若条件A成立,则跳到这里,否则跳到那里。
如果阅读由编译器最终生成的汇编代码,就会发现程序控制里包含了许多跳转。(java编译器生成它自己的“汇编代码”,这个代码是运行在java虚拟机上的,不是直接运行在cpu硬件上的。)
Goto语句是在源码级上的跳转。问题:无法识别程序的控制流程。
break和continue类似于goto跳转操作。它们其实不是一个跳转,而是中断迭代语句的一种方法,把他们纳入goto问题中一起讨论,是由于他们使用了相同的机制:标签。
标签是后面跟有冒号的标识符:label1:。
在java中,标签起作用的唯一的地方刚好是在迭代语句之前。“刚好之前”的意思表明,在标签和迭代之间置入任何语句都不好。在迭代之前设置标签的唯一理由:我们希望在其中嵌套另一个迭代或者一个开关。这是由于break和continue关键词通常只中断当前循环,但若随同标签一起使用,它们就会中断循环,直到标签所在的地方。
Break和continue用标签的区别:continue继续,break完全中止。

For循环中:Break本身只能中断最内层的循环,continue也是如此,如果想在中断循环的同时退出,用return即可。

While循环:一般的continue会退回最内层循环的开头(顶部),继续执行。带标签的continue会到达标签的位置,重新进入紧接在那个标签后面的循环。一般的break会中断并跳出当前循环。带标签的break会中断并跳出标签所指的循环。
重点:java里需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层嵌套中break或continue。

4.8 switch
Switch有时被划归为一种选择语句。根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行:
switch(integral-selector){
case integral-value1: statement; break;
case integral-value2: statement; break;
case integral-value3: statement; break;
case integral-value4: statement; break;
case integral-value5: statement; break;
// ...
default: statement;
}
integral-selector:整数选择因子,一个能够产生整数值的表达式,switch将这个表达式的结果与每个integral-value(整数值)相比较,发现相符的,执行对应的语句(单一语句或多条语句,其中并不需要括号),没有发现相符的,执行default(默认)语句。
每一个case以一个break结尾,使执行流程跳转至switch主体的末尾,break是可选的。省略break,继续执行后面case语句,直到遇到一个break为止。有时候可以利用这种情况。Default语句没有break,因为执行流程到了break的跳转目的地。考虑编程风格,可以放置一个,但没有任何实际的用处。
Switch是实现多路选择(从一系列执行路径中挑选一个)的一种干净利落的方法,要求使用一个选择因子,必须是int或char那样的整数值。对于非整数类型,必须使用一系列if语句。
Java SE5新特性enum,可以减弱这种限制,enum可以和switch协调工作。

Case语句能够堆叠在一起,为异端代码形成多重匹配,只要符合多种条件中的一种,就执行那段特别的代码,注意将break语句置于特定case的末尾,否则控制流程会简单的下移,处理后面的case。

4.9 总结
本章介绍了大多数编程语言都具有的基本特性:运算、操作符优先级、类型转换以及选择和循环等等。
分享到:
评论

相关推荐

    数据结构与算法分析_java语言描述课后答案(英文)

    - **第十二章:高级数据结构与实现** —— 探讨了更复杂的高级数据结构和它们的具体实现细节。 #### 三、具体知识点详解 1. **算法分析**: - 时间复杂度与空间复杂度的概念。 - 常见复杂度的分类(如O(1), O...

    Thinking in java第4版练习题答案

    第四版作为最新的版本,涵盖了从基础语法到高级特性的全面内容,旨在帮助读者理解并掌握Java编程的精髓。这本书的练习题是检验学习成果、提升编程技能的重要途径。以下是对这些练习题答案的一些关键知识点的解析: ...

    电子书《面向对象程序设计与Java语言》(第0.1版)

    2. **图形用户界面**:第十二章介绍了如何使用Java Swing或AWT库创建图形用户界面,以提高应用程序的用户体验。 3. **数据库编程**:第十三章教授如何利用Java连接数据库并执行查询,这对于开发需要存储和检索大量...

    第十五届蓝桥杯Java A组参赛总结

    ### 第十五届蓝桥杯Java A组参赛总结 #### 知识点一:比赛规则与流程 - **考试流程**:参赛者需首先下载题目,使用官方提供的解压密码解压试题包。整个考试时长为4小时。 - **提交方式**: - 在考试过程中,参赛...

    《Java面向对象程序设计(第2版)》例子源代码

    《Java面向对象程序设计(第2版)》是一本深入探讨Java编程的教材,尤其注重面向对象编程思想的讲解。本书通过丰富的实例代码,帮助读者理解并掌握Java语言的核心概念和面向对象编程的关键要素。在提供的压缩包文件...

    java基础教程

    - **1996年1月:** 第一个Java开发工具包(JDK)——JDK 1.0发布,开启了Java编程的新纪元。 - **1996年4月:** 主要的操作系统供应商宣布支持Java技术,增强了Java的影响力。 - **1997年2月18日:** JDK 1.1发布,...

    Java版数据结构与算法分析

    6. **堆**:第十二章讲解了堆这种特殊的树形数据结构,主要用于实现优先队列。通过Java代码示例展示了如何使用堆进行排序(堆排序)。 #### 五、图论 1. **图**:图是一种用于表示对象间关系的数据结构,分为有向...

    JNI编程指南书

    3. **第十一章至第十三章——JNI技术规范**:这部分内容作为技术规范,为开发者提供了详细的指引,既可以作为参考手册,也适用于那些需要自行实现JNI标准的高级用户。 #### 四、JNI的角色与限制 - **角色**:JNI...

    计算机科学与技术学院毕业设计(论文)开题报告

    Java 编程思想. 2005 年 3 月第 1 版. 机械工业出版社. [3] James Keogh 著.潘颖 王磊译.J2ME 开发大全. 2004 年 2 月第 1 版. 清华大学出版社. [4] Ian Sommerville 著. 程成等译. 软件工程. 2003 年 1 月第 1 ...

    JSP源代码(CH09~CH15)

    《JSP源代码详解(CH09~CH15)——构建网上购物系统》 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态处理。本资料包包含了从CH09到CH15的JSP源代码,这些...

    数据结构与算法分析_java语言描述

    根据提供的文件信息,我们可以归纳出该书《数据结构与算法分析_java语言描述》的主要知识点及其相关内容。本书由Mark Allen Weiss撰写,是计算机科学领域内学习数据结构与算法的经典教材之一。接下来,我们将按照各...

    Android程序设计基础

     阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此...

    坦克大战网络游戏开题报告

    - **技术实践**:该项目的主要目的是让学生通过实际操作,深入了解Java编程语言的核心概念和技术,如事件处理、线程控制、图形界面设计等。 - **功能拓展**:除了复刻经典游戏玩法外,还增加了网络对战模式,提高了...

    think in C sharp

    - **第12章:反射与属性**(559页)介绍了C#中的反射机制及其应用场景。 #### 13. 编程Windows表单 (Programming Windows Forms) - **第13章:编程Windows表单**(589页)教授了如何使用Windows Forms框架创建图形...

    代码之美(中文完整版).pdf

    5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. ...

Global site tag (gtag.js) - Google Analytics