阅读:6522回复:0
Java语言中带标签continue语句与 C 语言goto语句的区别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 |
|
|