转自:http://lihengzkj.iteye.com/blog/1090034

以前不知道在循环中可以使用标签。最近遇到后,举得还是有其独特的用处的。我这么说的意思是说标签在循环中可以改变循环执行的流程。而这种改变不是我们以前单独使用break或者是continue能够达到的。下面还是看看实例吧。

  1. outer1:
  2. for(int i =0;i<4;i++){
  3. System.out.println("begin to itrate.    "+i);
  4. for(int j =0;j<2;j++){
  5. if(i==2){
  6. continue outer1;
  7. //          break;
  8. }
  9. System.out.println("now the value of j is:"+j);
  10. }
  11. System.out.println("******************");
  12. }

执行的结果是: 
begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    1 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    2 
begin to itrate.    3 
now the value of j is:0 
now the value of j is:1 
****************** 
注:当i=2的时候,continue outer1 使程序回到了outer1最开始循环的位置,开始下一次循环,这个时候执行的循环是i=3而不是重新从i=0开始。同时当使用continue outer1跳出内层循环的时候,外层循环后面的语句也不会执行。也就是是在begin to itrate.    2后面不会出现一串*号了。 
对比:

  1. outer1:
  2. for(int i =0;i<4;i++){
  3. System.out.println("begin to itrate.    "+i);
  4. for(int j =0;j<2;j++){
  5. if(i==2){
  6. //          continue outer1;
  7. break;
  8. }
  9. System.out.println("now the value of j is:"+j);
  10. }
  11. System.out.println("******************");
  12. }

注:我们直接使用break的话,只是直接跳出内层循环。结果其实就可以看出区别来: 
begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    1 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    2 
****************** 
begin to itrate.    3 
now the value of j is:0 
now the value of j is:1 
****************** 
-----------------------------------------------------------------分割线 
我们再来看看break+标签的效果

  1. outer2:
  2. for(int i =0;i<4;i++){
  3. System.out.println("begin to itrate.    "+i);
  4. for(int j =0;j<2;j++){
  5. if(i==2){
  6. break outer2;
  7. //          break;
  8. }
  9. System.out.println("now the value of j is:"+j);
  10. }           System.out.println("******************");
  11. }

结果: 
begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    1 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    2 
注:从结果就可以看出当i=2的时候,break+标签 直接把内外层循环一起停掉了。而如果我们单独使用break的话就起不了这种效果,那样只是跳出内层循环而已。 
最后说一句,Java中的标签只适合与嵌套循环中使用。

Java循环中标签的作用(转)的更多相关文章

  1. Java 循环中标签的作用

    continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环.在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使 ...

  2. Java循环中删除一个列表元素

    本文主要想讲述一下我对之前看到一篇文章的说法.假设跟你的想法有出入,欢迎留言.一起讨论. #3. 在循环中删除一个列表元素 考虑以下的代码.迭代过程中删除元素: ArrayList<String ...

  3. return break 和continue在for循环中的不同作用

    平时自己经常在函数里见到return,在switch语句中使用break,而continue则用的不多. 其实这三者都能在for循环中发挥不同的作用,让代码更加灵活. 先说return return是 ...

  4. 解决 java循环中使用 Map时 在put值时value值被覆盖的问题

    其实很简单,只需要把容器换成list 然后在循环中,每次循环末尾map = new HashMap() 或者直接在循环中一开始就实例化hashmap(Map map = new HashMap();) ...

  5. Java中for循环以及循环中标签

    1.第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterat ...

  6. 循环中标签outer用法:break outer continue outer

    1.outer: break 如果不使用标签,break跳出里层for循环,使用break标签,则跳出两层循环 输出:i:0 j:0 i:0 j:1 public class breakTest { ...

  7. Java程序中的代理作用和应用场景及实现

    body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...

  8. break 和continue在循环中起到的作用

    break语句的作用是终止当前循环,跳出循环体.主意,break只能跳出一层循环. continue语句的作用是终止本轮循环并开始下一轮循环,(这里要主意的是在开始下一轮循环之前,会先测试循环条件). ...

  9. java 构造方法中super()的作用?

    手贱百度了一下 :java里面自定义类的有参构造方法为什么不用super() 举个例子: class Father { Father(){print ('father');}; } class Son ...

随机推荐

  1. OpenCV教程(47) sift特征和surf特征

         在前面三篇教程中的几种角检测方法,比如harris角检测,都是旋转无关的,即使我们转动图像,依然能检测出角的位置,但是图像缩放后,harris角检测可能会失效,比如下面的图像,图像放大之前可 ...

  2. c++流缓冲学习---rdbuf()

    我们使用STL编程的时候有时候会想到把一个流对象指向的内容用另一个流对象来输出,比如想把一个文件的内容输出到显示器上,我们可以用简单的两行代码就可以完成: ifstream infile(" ...

  3. 前端Js框架汇总【转】

    概述: 有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快.看着Java.Js.Swift在各领域心花路放,也是煞是羡慕.寻了寻.net的消息,也是振奋人心,.net co ...

  4. RxJava RxBinding RxView 控件事件 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. JavaScript Math和Number对象研究

    1. Math 对象 1.1 介绍   Math 对象,是数学对象,提供对数据的数学计算,如:获取绝对值.向上取整等.无构造函数,无法被初始化,只提供静态属性和方法.   1.2 构造函数   无 : ...

  6. 揭破android中的闹钟app 二

    · 这节,我们通过wheelview来模仿一个简易的正点闹钟. 我这里不说wheelview来龙去脉,只阐述几个简单的方法,如果,想看一看具体wheelview的内容,请看下面两篇文章: androi ...

  7. Android Studio中实现AIDL

    AIDL 先来两个传送门: http://www.cnblogs.com/yydcdut/p/3961545.html Android面试,与Service交互方式 http://www.cnblog ...

  8. java中正则表达式基本用法(转)

    https://www.cnblogs.com/xhj123/p/6032683.html 正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符( ...

  9. OpenNebula学习第三节之虚拟机管理

    一.背景 已经安装好OpenNebula-Front-end 已经安装好OpenNebula Node 已经把Node注册到Front-end 二.目标 看过第一.二节的同学们可能已经知道我的整个环境 ...

  10. 壮士断腕!WordPress宣布停止使用React

    WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,也可以把WordPress当作一个内容管理系统(CMS)来使用. WordPr ...