黑马程序员技术交流社区
标题: java中是否有goto语句? [打印本页]
作者: 耿渊博 时间: 2014-3-16 23:50
标题: java中是否有goto语句?
本帖最后由 耿渊博 于 2014-3-17 08:53 编辑
在编程中好多语言,比如c,basic语言都有goto语句,java中是否有类似的强制跳转语句?
作者: 小龙编程世界 时间: 2014-3-16 23:57
Java不提供goto语句,它虽然指定goto作为保留字,但不支持它的使用.在Java中goto语句被完全抛弃了,与此同时,Java又扩大了break语句和continue语句的功能,通过使用break和continue,程序流程被允许在多层循环中跳转。
作者: 谭荣强 时间: 2014-3-16 23:58
java没有goto,continue break是强制跳转的
作者: 松涛小玮 时间: 2014-3-17 00:06
java中goto是保留字,意味将来java中可能用到,但是现在没有用到。continue和break基本上可以满足类似goto的功能。
作者: papercup 时间: 2014-3-17 08:49
java中没有goto语句,在java中如果想要实现跳转,再循环语句中使用带标签的continue语句和带标签的break语句,这样就可以实现循环跳转的功能。毕老师的视频中有用到过。
作者: 耿渊博 时间: 2014-3-17 08:50
哦,我看到是不是break可以设置类似goto的标记,使程序直接无条件跳转到标记点吗?
作者: 耿渊博 时间: 2014-3-17 08:53
哦,明白了 谢谢大家了
作者: Up↑Lee↗ 时间: 2014-3-17 08:55
这个例子也许能帮助你。。。
用于循环中的标号:想跳那个循环就跳那个循环
class OtherDemo
{
public static void main(String[] args)
{
//break:
w:for(int x=0; x<3; x++)
{
for(int y=0; y<4; y++)
{
System.out.println("x="+x);
break w;
}
}
作者: 1014917278 时间: 2014-3-17 09:31
go to语句是有缺陷的,所以在java中被保留了
作者: 李乾 时间: 2014-3-17 19:46
go to 语句强行跳转,其实很危险,一般也不会用
作者: 240336124 时间: 2014-3-17 19:56
本帖最后由 240336124 于 2014-3-17 19:57 编辑
把break 当作goto 一种形式来用 break语句除在switch语句和循环中使用之外,它还
能作为goto 语句一种“文明”形式来使用。Java 中没有 goto 语句,因为goto 语句提供
一种改变程序运行流程非结构化方式。这通常使程序难以理解和难于维护。它也阻止某些
编译器优化。但是,有些地方goto 语句对于构造流程控制是有用而且是合法。
例如,从嵌套很深循环中退出时, goto 语句就很有帮助。因此,Java 定义break 语
句一种扩展形式来处理这种情况。通过使用这种形式break,你可以终止一个或者几个代码
块。这些代码块不必是一个循环或一个switch语句一部分,它们可以是任何块。而且,由
于这种形式break 语句带有标签,你可以明确指定执行从何处重新开始。你将看到,break
带给你是goto 益处,并舍弃goto 语句带来麻烦。
标签break 语句通用格式如下所示: break label; 这里,标签label 是标识代码块
标签。当这种形式break执行时,控制被传递出指定代码块。被加标签代码块必须包围
break 语句,但是它不需要是直接包围break块。这意味着你可以使用一个加标签break 语
句退出一系列嵌套块。但是你不能使用break 语句将控制传递到不包含break 语句代码块
。 要指定一个代码块,在其开头加一个标签即可。标签(label )可以是任何合法有效
Java 标识符后跟一个冒号。一旦你给一个块加上标签后,你就可以使用这个标签作为
break 语句对象。这样做会使执行在加标签块结尾重新开始。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |