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 总结
本章介绍了大多数编程语言都具有的基本特性:运算、操作符优先级、类型转换以及选择和循环等等。
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编程思想第四版——第二十一天
2012-05-04 12:56 5772012-05-04 163-170/913 Java编 ... -
Java编程思想第四版——第二十天
2012-05-03 13:45 7022012-05-03 158-163/913 Java编程思 ... -
Java编程思想第四版——第十九天
2012-05-02 11:08 8152012-05-02 149-158/913 Java编程思 ... -
Java编程思想第四版——第十八天
2012-04-27 13:12 10022012-04-27 142-149/913 Java编 ... -
Java编程思想第四版——第十七天
2012-04-25 11:18 7422012-04-25 138-142/913 Java编程思 ... -
Java编程思想第四版——第十六天
2012-04-24 13:50 7502012-04-24 131-138/913 Java编 ... -
Java编程思想第四版——第十五天
2012-04-23 17:14 7532012-04-23 121-131/913 Java编程思 ... -
Java编程思想第四版——第十四天
2012-04-19 11:28 6252012-04-19 118-121/913 Java编程思 ... -
Java编程思想第四版——第十三天
2012-04-18 12:08 6652012-04-18 108-118/913 Java编 ... -
Java编程思想第四版——第十一天
2012-04-05 12:21 8182012-04-05 Java编程思想第四版——第十一天 ... -
Java编程思想第四版——第十天
2012-03-31 12:03 5582012-03-31 97-102/913 Java编程思想 ... -
Java编程思想第四版——第九天
2012-03-30 14:59 6512012-03-30 80-97/913 Java编程思想第 ... -
Java编程思想第四版——第八天
2012-03-29 12:09 4822012-03-29 76-80/913 3.6 自动递增和 ... -
Java编程思想第四版——第七天
2012-03-28 12:24 6562012-03-28 70-76/913 昨天找 ... -
Java编程思想第四版——第六天
2012-03-27 13:02 5272012-03-27 66-70/913 最近两 ... -
Java编程思想第四版——第五天
2012-03-23 15:09 9422012-03-23 60-66/913 2.5 方法、参数 ... -
Java编程思想第四版——第四天
2012-03-22 12:41 5882012-03-22 54-60/913 第二章 ... -
Java编程思想第四版——第三天
2012-03-21 12:40 5682012-03-21 47-54/913 1.12 并 ... -
Java编程思想第四版——第二天
2012-03-20 13:54 728今天本来以为进度可以 ... -
Java编程思想第四版——第一天
2012-03-19 15:57 784Java已经丢手一年了 ...
相关推荐
- **第十二章:高级数据结构与实现** —— 探讨了更复杂的高级数据结构和它们的具体实现细节。 #### 三、具体知识点详解 1. **算法分析**: - 时间复杂度与空间复杂度的概念。 - 常见复杂度的分类(如O(1), O...
第四版作为最新的版本,涵盖了从基础语法到高级特性的全面内容,旨在帮助读者理解并掌握Java编程的精髓。这本书的练习题是检验学习成果、提升编程技能的重要途径。以下是对这些练习题答案的一些关键知识点的解析: ...
2. **图形用户界面**:第十二章介绍了如何使用Java Swing或AWT库创建图形用户界面,以提高应用程序的用户体验。 3. **数据库编程**:第十三章教授如何利用Java连接数据库并执行查询,这对于开发需要存储和检索大量...
### 第十五届蓝桥杯Java A组参赛总结 #### 知识点一:比赛规则与流程 - **考试流程**:参赛者需首先下载题目,使用官方提供的解压密码解压试题包。整个考试时长为4小时。 - **提交方式**: - 在考试过程中,参赛...
《Java面向对象程序设计(第2版)》是一本深入探讨Java编程的教材,尤其注重面向对象编程思想的讲解。本书通过丰富的实例代码,帮助读者理解并掌握Java语言的核心概念和面向对象编程的关键要素。在提供的压缩包文件...
- **1996年1月:** 第一个Java开发工具包(JDK)——JDK 1.0发布,开启了Java编程的新纪元。 - **1996年4月:** 主要的操作系统供应商宣布支持Java技术,增强了Java的影响力。 - **1997年2月18日:** JDK 1.1发布,...
6. **堆**:第十二章讲解了堆这种特殊的树形数据结构,主要用于实现优先队列。通过Java代码示例展示了如何使用堆进行排序(堆排序)。 #### 五、图论 1. **图**:图是一种用于表示对象间关系的数据结构,分为有向...
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(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态处理。本资料包包含了从CH09到CH15的JSP源代码,这些...
根据提供的文件信息,我们可以归纳出该书《数据结构与算法分析_java语言描述》的主要知识点及其相关内容。本书由Mark Allen Weiss撰写,是计算机科学领域内学习数据结构与算法的经典教材之一。接下来,我们将按照各...
阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此...
- **技术实践**:该项目的主要目的是让学生通过实际操作,深入了解Java编程语言的核心概念和技术,如事件处理、线程控制、图形界面设计等。 - **功能拓展**:除了复刻经典游戏玩法外,还增加了网络对战模式,提高了...
- **第12章:反射与属性**(559页)介绍了C#中的反射机制及其应用场景。 #### 13. 编程Windows表单 (Programming Windows Forms) - **第13章:编程Windows表单**(589页)教授了如何使用Windows Forms框架创建图形...
5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. ...