doubleyong
管理员
管理员
  • 最后登录2025-04-01
  • 发帖数1197
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:6522回复:0

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

楼主#
更多 发布于:2017-03-31 13:27
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) ;
 }
}

原文:http://www.360doc.com/content/17/0331/13/41603240_641681657.shtml
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号