跳跃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>
}
}
}
注意到这样的巧妙之处了吧。个人感觉非常有新意之处。只是。因为写的比較急,可能其它不当之处没考虑到。
假设有其它方式。欢迎提出!签发地点。欢迎大家指正!
版权声明:本文博主原创文章,博客,未经同意不得转载。
跳跃Java一些周期,双跳FOR周期的更多相关文章
- 第24章 java线程(3)-线程的生命周期
java线程(3)-线程的生命周期 1.两种生命周期流转图 ** 生命周期:**一个事物冲从出生的那一刻开始到最终死亡中间的过程 在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态 ...
- java 静态变量生命周期(类生命周期)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- java多线程(2)---生命周期、线程通讯
java生命周期.线程通讯 一.生命周期 有关线程生命周期就要看下面这张图,围绕这张图讲解它的方法的含义,和不同方法间的区别. 1.yield()方法 yield()让当前正在运行的线程回到就绪 ...
- java 静态变量生命周期(类生命周期)(转)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- Java多线程之线程的生命周期
Java多线程之线程的生命周期 一.前言 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态.在线程的生命周期中,它要经过新建(New).就绪(Runnable).运行(R ...
- Webdriver+Java实现使用cookie跳过登录
Webdriver+Java实现使用cookie跳过登录 Webdriver模拟登录过程中很有可能遇到验证码,最近认真学习了下如何使用cookie直接跳过登录过程. 一.cookie的定义 来源百 ...
- 【PMP】项目生命周期和开发生命周期
一.定义 项目生命周期:指项目从启动到完成所经历的一系列阶段. 开发生命周期:项目生命周期内通常有一个或多个阶段与产品.服务或成果的开发相关,这些阶段称为开发生命周期. 二.生命周期 预测型生命周期( ...
- java :: Java中的双冒号操作符
java中的双冒号操作符 定义 双冒号运算操作符是类方法的句柄,lambda表达式的一种简写,这种简写的学名叫eta-conversion或者叫η-conversion. 通常的情况下: 把 x -& ...
- 微信APP生命周期、页面生命周期
目录 小程序的启动流程 app生命周期 页面的生命周期 页面的生命周期(图) 小程序的启动流程 我们画一个图来表示一下,整个小程序的启动流程,我们就知道了: app生命周期 执行App()函数也就是注 ...
随机推荐
- 六:Java之集合
集合包括的内容非常多,我发现一个非常好的博客,感觉自己都没有写的必要了! 链接献上 Java集合
- CSS之box-sizing的用处简介
前几天才发现有 box-sizing 这么个样式属性.研究了一番感觉非常有意思, 通过指定容器的盒子模型类型,达到不同的展示效果 比如:当一个容器宽度定义为 width:100%; 之后.假设再添加 ...
- 【剑指offer】面试题35:第一个数字只出现一次
def FirstNotRepeatingChar(string): hashStr = [0] * 256 for c in string: hashStr[ord(c)] += 1 for c i ...
- Javascript语言精粹之String常用方法分析
Javascript语言精粹之String常用方法分析 1. String常用方法分析 1.1 String.prototype.slice() slice(start,end)方法复制string的 ...
- Linux下一个C(编程入门.h档,.c档,而路多文件的调用)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0 ...
- VirtualBox安装ubuntu14.04和文件共享
因为机器的VMware使用很卡,占用更多的内存,所以我想,以取代VirtualBox.已安装ubuntu14.04使用与VMware在相同的. VirtualBox下载链接:https://www.v ...
- ubuntu 12.04安装经典的Gnome桌面
这次介绍的是如何在ubuntu 12.04 中安装经典的 GNOME桌面,默认的 Ubuntu 12.04 默认unity桌面,一些用户不喜欢 Unity 桌面,所以想找回昔日的经典Gnome桌面. ...
- wbadmin delete backup删除服务器旧的镜像备份
- current online redo logfile 丢失的处理方法
昨天做了rm -rf操作后的恢复演练,并且是在没有不论什么备份的情况下.今天在做破坏性操作前,做了个rman全备,然后在线删除所有数据库文件,包含控制文件,数据文件,在线日志文件,归档文件等.来看看有 ...
- Android锁定屏幕或关闭状态-screen,高速按两次音量向下键来实现拍摄功能(1.1Framework在实现的形式层广播)
思想的实现: WindowManagerService循环读取下面的关键信息和分发形式.在PhoneWindowManager.interceptKeyBeforeQueueing方法中进行消 ...