zoukankan      html  css  js  c++  java
  • 跳跃Java一些周期,双跳FOR周期

    今天写的代码写在一个双层for周期,目前仍在使用Iterator,大致意思是假定在第二个周期在排位赛中给了整个双回路跳。

    刚開始,直接使用break。巴拉巴拉的敲了一堆代码,信心满满的就直接执行。等到结果一看。这不是要我要的。

    哎··看来不扎实呀!


    突然来了兴趣,索性就看看一些资料。总结了几种跳出循环的方式:

    1、直接跳出循环:

    for (int i = 0; i < 10; i ++) {
    	if(i == 4) {
    		break;
    	}
    	System.out.println(i);
    }
    System.out.println("================");
    for(int i = 0; i < 20; i ++) {
    	for(int j = 20; j > 0; j --) {
    		System.out.println("i = " + i + ", j=" + j);
    		if (j == i) {
    			break;
    		}				
    	}
    }
    System.out.println("=================");

    这是属于常规性的循环与跳出,一般使用break能够搞定。可是遇到略微复杂点的双重循环,就不一定如我们所想了。

    比如以下的代码:

    <span style="white-space:pre">	</span>for (Map map : listMap) {
    		for (Iterator it = map.keySet().iterator(); it.hasNext();) {
    			String key = (String) it.next();
    			Object value = map.get(key);
    			
    			System.out.println("第 " + count + "个Map的键值对是:Key=" + key + ",Value=" + value.toString());
    			
    			if (key.equals("4")) {
    				System.out.println("跳出循环");
    				break;
    
    			}
    		}
    	}

    遇到这种循环,预计简单的break就没用了。那么。使用以下的标记推出就能够实现。


    2、利用 标记跳出循环

    List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();

    	loop : for (Map map : listMap) {
    		for (Iterator it = map.keySet().iterator(); it.hasNext();) {
    			String key = (String) it.next();
    			Object value = map.get(key);
    			
    			System.out.println("第 " + count + "个Map的键值对是:Key=" + key + ",Value=" + value.toString());
    			
    			if (key.equals("4")) {
    				System.out.println("跳出循环");
    				<strong style="background-color: rgb(255, 255, 255);"><span style="color:#ff6666;">break loop;</span></strong>
    
    			}
    		}
    	}

    这样的方式能够非常好的实现推出双重循环。可是这是foreach的方法。

    假如是for(int i =0; i< 100; i ++)这种循环,今天在晚上看到第二种针对双层循环推出的方法。个人认为非常有意思。


    3、将循环数做下变动(网友提供的,非常有意思)

    <span style="white-space:pre">	</span>for (int i = 0; i < listMap.size(); i ++;) {
    		Map<String, Object> map = listMap.get(i);
    		for (Iterator it = map.keySet().iterator(); it.hasNext();) {
    			String key = (String) it.next();
    			Object value = map.get(key);
    			
    			System.out.println("第 " + count + "个Map的键值对是:Key=" + key + ",Value=" + value.toString());
    			
    			if (key.equals("4")) {
    				System.out.println("跳出循环");
    				<span style="color:#ff6666;"><strong>i = listMap.size();</strong></span>
    			}
    		}
    	}

    注意到这样的巧妙之处了吧。个人感觉非常有新意之处。只是。因为写的比較急,可能其它不当之处没考虑到。


    假设有其它方式。欢迎提出!签发地点。欢迎大家指正!


    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    客户端用不用bind的区别
    软件项目开发流程
    很强大的几个网站
    MIS系统的 5个基本模块
    asp.net 生成导出word表单 ,导出excel; dataTable生成xls文件,返回前台下载;asp.net启动excel错误 80070005;excelxls columnName 不能改变; 读写excel的开源利器NPOI; 设置excel Cell的数据类型;
    正则快速入门
    asp.net 服务端调用客户端脚本; asp.net 服务端将文件传给客户端; reponse.ContentType的取值;用OutputStream.Write返回文件,效率是WriteFile的10倍;download link click和OutputStream的比较;
    常用编辑
    数据库流程图设计
    scroll位置控制 window的和div的
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4835836.html
Copyright © 2011-2022 走看看