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) ;
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。