分享

Java语言中带标签continue语句与C语言goto语句的区别

 taohongyong 2013-12-30

Java语言中带标签continue语句与 C 语言goto语句的区别

 

author : aoyousatuo/傲游洒脱

from : http://blog.sina.com.cn/aoyousatuo

 

 Java语言的学习过程中,许多初学者都差异于其有一个带标签的语法规范 [continue label ;] 很自然,许多人就想到了C系列语言中的goto语句。但是Java语言中这种带标签的用法和C语言中的goto用法一样吗?两者有什么区别呢?下面笔者就给大家一个说法。

    首先,从软件工程的角度来说,这种跳转语句严重破坏了程序的逻辑结构,是禁止的。但是C语言的灵活性却体现在给程序员更大的权限,并且程序健壮性逻辑性的保证都交给了程序员自身。说实话,这种跳转语句用得好,可以提高程序的效率,如果用不好将是一种灾难。而这些有益的好处主要体现在让程序从多重循环中全身而退。如果没有这个语句,程序必须在每一层循环都要处理退出当前循环的动作,非常繁冗。

    Java语言之所以提供带标签的continue语句,我想也是基于此种目的。它将跳转语句的好处给与保留,却限制了程序员的使用权限。我想这也是为什么Java语言中不把这种跳转语句叫goto而是提供一种带标签continue语句的原因所在。

    Java语言虽然设计了带标签的continue语句,但是使用权限却有着严格的限制。

1.                 它必须在一个循环体系中使用,这个循环体系可以是嵌套的多级循环,也可以只是个简单的循环,每个循环也可以包含一个或者几个同级的子循环;

2.                 跳转标签只能加在每一个循环体系结构前;

3.                 子循环体可以调转到父循环,但是父循环不能直接跳转到子循环,并且同级循环体不能相互跳转

 

例如

 

Label_ 1 :

for(1)

{

    if(…)

      continue (只能Label_1) ;

Label_2  :

    for(2)

    {

        continue (只能Label_1 或者 Label_2) ;

 }

Label_3  :

 for(3)

 {

     continue (只能Label_1 或者 Label_3) ;

 } 

}

 

         

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多