原来java中也有类似goto语句的标签啊--java label标签(一)
来源:互联网 发布:淘宝缴纳保证金 编辑:程序博客网 时间:2024/06/06 09:38
文章来源 http://blog.csdn.net/sshi1984/article/details/3915452
goto语句的危害:
goto语句是在源码级上的跳转,这使其招致了不好的声誉。若一个程序总是从一个地方跳到另一个地方,还有什么办法来控制程序的流程。
java中的“goto”:
虽然Java中goto语句只是java的一个保留字,没有起任何作用,但是我今天在使用continue和break语句时,还是发现了其中又goto语句的影子。因为continue和break语句都支持跳到一个Label的位置。下面是具体的用法:
inner:
for( int i = 0 ; i<3 ;i++ ){
System.out.println("iiii===>"+i);
for( int j =0 ; j<5; j++ ){
if( j == 1 )
continue inner;
System.out.println("j===>"+j);
}
}
上面一段语句的输出为
iiii===>0
j===>0
iiii===>1
j===>0
iiii===>2
j===>0
一般的 continue语句都是跳出当前循环,但是这个会跳出到标记inner的位置。从这段程序可以看出,当跳到标签inner的时候是继续进行for循环,而不是重新开始。
Ps:
在java中,标签起作用的唯一的地方是在迭代语句之前。
在java中需要使用标签的唯一理由就是因为有循环嵌套的存在,而且想从多层嵌套中break或continue。
goto语句的危害:
goto语句是在源码级上的跳转,这使其招致了不好的声誉。若一个程序总是从一个地方跳到另一个地方,还有什么办法来控制程序的流程。
java中的“goto”:
虽然Java中goto语句只是java的一个保留字,没有起任何作用,但是我今天在使用continue和break语句时,还是发现了其中又goto语句的影子。因为continue和break语句都支持跳到一个Label的位置。下面是具体的用法:
inner:
for( int i = 0 ; i<3 ;i++ ){
System.out.println("iiii===>"+i);
for( int j =0 ; j<5; j++ ){
if( j == 1 )
continue inner;
System.out.println("j===>"+j);
}
}
上面一段语句的输出为
iiii===>0
j===>0
iiii===>1
j===>0
iiii===>2
j===>0
一般的 continue语句都是跳出当前循环,但是这个会跳出到标记inner的位置。从这段程序可以看出,当跳到标签inner的时候是继续进行for循环,而不是重新开始。
Ps:
在java中,标签起作用的唯一的地方是在迭代语句之前。
在java中需要使用标签的唯一理由就是因为有循环嵌套的存在,而且想从多层嵌套中break或continue。
阅读全文
0 0
- 原来java中也有类似goto语句的标签啊--java label标签(一)
- 原来java中也有类似goto语句的 标带有标签的for循环
- Java的goto:标签+break/continue
- Java - 标签(label)
- Java - 标签(Label)
- 《java核心技术》之读书札记D1:没有goto的标签语句
- java中类似c++ goto功能---------label简介
- java里面的标签运用 continue label, break label
- Java中的\"goto\"实现 使用标记(标签)
- goto语句中的标签地址
- Java中几种输出数组的for循环,以及循环中使用标签(非goto)
- java中的标签语句
- Java的break和contunie加(label)标签的用法
- Java控制语句 标签的用法
- <label></label>标签的作用。
- Java - goto语句
- Java中的goto语句
- 关于php没有类似java标签的讨论
- 生产者与消费者模式
- spring xml引用properties中的数据
- jquery的异步提交表单(异步上传文件)及jquery.form.js上传文件注意事项
- 6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么
- 为什么Redux可以全局共享
- 原来java中也有类似goto语句的标签啊--java label标签(一)
- Hibernate核心类用法-使用Configuration装载配置
- 在一个app中启动另外一个app的service
- python建立二叉树并且可视化
- DecorView与window的创建
- springboot整合jedisCluster
- vue 实战 之 饿了吗 页头模板
- 设计模式之抽象工厂
- 通过PL/SQL创建序列和触发器实现表自增字段