频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

5.4.3 标签语句

作者: 葛志春 刘志成 聂艳明 冯向科 出处:机械工业出版社  2007-09-09 14:08    砖    好    评论   进入论坛
阅读提示:《Java面向对象编程》以Java最新版本Java SE5为基础,涵盖了Java SE5最新特性,由浅入深地介绍了Java SE5的主要内容。读者不仅可以全面掌握Java SE5,而且能够掌握与程序设计相关的知识,如面向对象思想理论与分析设计方法、UML、程序算法设计以及数据结构等。本文介绍5.4.3 标签语句。
5.4.3   标签语句
1. 标签语句概述

Java允许在语句前加上标签前缀,构成标签(label)语句。其一般格式为:
标识符:语句
其中标识符应是Java语言中合法的标识符;语句可以是任意Java语句,包括简单语句、复合语句(语句块)、控制转移语句、空语句。但由于在Java中,标签语句仅能与break和continue语句配合使用,所以给简单语句或空语句加标签没有意义。
含义是,为冒号“:”后的语句指定名为“标识符”的标签。如:
Outer:
{
......
}
Outer2:while(true)
{
......
}
提及标签语句,最好先介绍一下它的老搭档goto语句。goto语句可以说是程序控制结构的始祖,它在程序中与标签语句配合使用可灵活地构造任意复杂的业务逻辑。但由于它过于灵活,在编程时常被随意跳转,使程序控制结构变的复杂而且混乱。随着E. W. Dijkstra著名的“goto语句有害论”的问世和广泛争论,goto语句也逐渐失宠,并在Java中被取消。
当然,goto语句也并非一无是处,在一些情况下,如需从嵌套很深的循环中退出时,它还是组织控制流程的最佳手段。为此,Java虽取消了goto语句,但Java仍保留了goto语句的优点。通过标签语句与break、continue语句的配合,构造带标号的break语句和带标号的continue语句,允许程序从循环体内部退出到循环体外部或者从语句块内部退出至语句块外部,但不允许从外部跳转至内部。带标号的break,continue语句格式如下:
break  labelIdentifier;
continue labelIdentifier;
带标号的break和continue语句,只能在标签所指的语句块或其嵌套包含的内层语句块中使用。表示从语句块内部退出到指定语句块中。如下面程序第9行的break语句用法是不允许的。
 
2. 与break语句配合使用
带标号的break语句,可以使程序从复合语句或循环体内部退出到指定标签所标识的外层语句块末尾,继续执行之后的语句。如可以从最里层(第n层),退出到最外层(第1层),也可退出到第n-m层(n>m)。图5-15演示了这一语义。
当带标号的break语句,从第n层退出到n-1层时,其效果与不带标号的break语句是相同的。如下例:
 
 
 
图5-15   带标签的break语句工作原理
带标号的break语句最常用的用法是退出循环嵌套,当程序需要从嵌套很深的循环中退出时,它是非常有价值的,因为它可大大简化代码的执行过程。例5.16显示了这一道理。
【例5.16】
 
当程序从第5层循环中退出到第一层循环时,循环均被终止。
3. 与continue语句配合使用
带标号的continue语句只能在循环体内部使用,使程序终止当前循环;从循环体内部跳出到标签所指的循环控制层,再判定该循环判定表达式,以决定是否再次进入该循环,图5-16演示了这一过程。这与带标号的break语句终止该循环不同。
与带标号的break语句一样,当带标号的continue语句,从第n层退出到n-1层时,其效果与不带标号的continue语句是相同的。
下面再来关注一下例5.12中九九乘法表的打印,用带标号的continue语句实现相同功能。
【例5.17】
 
 
程序执行结果,同例5.13。
 
在优质的Java程序中,标签语句是比较不常用的。因为Java提供了丰富的循环语句,可适用于绝大多数场合。
【责任编辑:杨硕 TEL:(010)68476636-8001】

回书目   上一节   下一节
· 5.7 习题(09/09)
· 5.6 小结(09/09)
专题
Java实用开发全集
Java类的基础教程专题
Java发展动态专题
Java编程开发手册
Java基础教程
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用