break 和continue以及return的区别
2015-10-08 21:39
671 查看
break 和continue以及return的区别
break 作用结束当前所在层的循环continue 结束本层的本次循环
return 结束所在多级循环,返回
以一个两层循环为例,代码如下
for (int i = 0; i < 10; i++) { Log.d("value", "----->i=" + i); for (int j = 0; j < 10; j++) { Log.i("value", "j=" + j); } }
continue 结束本层的本次循环
for (int i = 0; i < 10; i++) { Log.d("value", "----->i=" + i); for (int j = 0; j < 10; j++) { if (j == 2) { // continue的作用跳过本层本次循环,当 j=2时被跳过 continue; } Log.i("value", "j=" + j+""); } }
加入continue代码打印结果,结束了本层本次循环,即当j=2被跳过了,开始本层下一个循环,从j=3开始打印
10-08 13:45:46.456: D/value(1197): —–>i=0
10-08 13:45:46.456: I/value(1197): j=0
10-08 13:45:46.460: I/value(1197): j=1
10-08 13:45:46.460: I/value(1197): j=3
10-08 13:45:46.460: I/value(1197): j=4
10-08 13:45:46.460: I/value(1197): j=5
10-08 13:45:46.460: I/value(1197): j=6
10-08 13:45:46.460: I/value(1197): j=7
10-08 13:45:46.460: I/value(1197): j=8
10-08 13:45:46.460: I/value(1197): j=9
10-08 13:45:46.460: D/value(1197): —–>i=1
10-08 13:45:46.460: I/value(1197): j=0
10-08 13:45:46.460: I/value(1197): j=1
10-08 13:45:46.464: I/value(1197): j=3
10-08 13:45:46.464: I/value(1197): j=4
10-08 13:45:46.464: I/value(1197): j=5
10-08 13:45:46.464: I/value(1197): j=6
10-08 13:45:46.464: I/value(1197): j=7
10-08 13:45:46.464: I/value(1197): j=8
10-08 13:45:46.464: I/value(1197): j=9
10-08 13:45:46.464: D/value(1197): —–>i=2
10-08 13:45:46.464: I/value(1197): j=0
10-08 13:45:46.464: I/value(1197): j=1
10-08 13:45:46.464: I/value(1197): j=3
10-08 13:45:46.464: I/value(1197): j=4
10-08 13:45:46.464: I/value(1197): j=5
10-08 13:45:46.464: I/value(1197): j=6
10-08 13:45:46.464: I/value(1197): j=7
10-08 13:45:46.464: I/value(1197): j=8
10-08 13:45:46.464: I/value(1197): j=9
10-08 13:45:46.464: D/value(1197): —–>i=3
10-08 13:45:46.464: I/value(1197): j=0
10-08 13:45:46.464: I/value(1197): j=1
10-08 13:45:46.464: I/value(1197): j=3
10-08 13:45:46.464: I/value(1197): j=4
10-08 13:45:46.464: I/value(1197): j=5
10-08 13:45:46.464: I/value(1197): j=6
10-08 13:45:46.464: I/value(1197): j=7
10-08 13:45:46.464: I/value(1197): j=8
………此处省略….
break 作用结束当前所在层的循环
for (int i = 0; i < 10; i++) { Log.d("value", "----->i=" + i); for (int j = 0; j < 10; j++) { if (j == 2) { // break 结束所在层循环 break; } Log.i("value", "j=" + j + ""); } }
观察打印结果:当代码执行到break后,本次循环结束,直接进入开始上一层循环
10-08 13:51:36.460: D/value(1257): —–>i=0
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=1
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=2
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=3
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=4
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=5
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=6
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=7
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=8
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
10-08 13:51:36.460: D/value(1257): —–>i=9
10-08 13:51:36.460: I/value(1257): j=0
10-08 13:51:36.460: I/value(1257): j=1
return 结束整个循环体,直接返回
for (int i = 0; i < 10; i++) { Log.d("value", "----->i=" + i); for (int j = 0; j < 10; j++) { if (j == 2) { // return 结束所在层循环 return; } Log.i("value", "j=" + j + ""); } }
10-08 13:56:45.092: D/value(1330): —–>i=0
10-08 13:56:45.092: I/value(1330): j=0
10-08 13:56:45.096: I/value(1330): j=1
同样地,再验证 三层循环中 return的作用,打印结果依然 在遇到return后 结束所有循环
for (int i = 0; i < 10; i++) { Log.d("value", "----->i=" + i); for (int j = 0; j < 10; j++) { Log.i("value", "j=" + j + ""); for (int x = 0; x < 10; x++) { if (x == 2) { // return 结束所在层循环 return; } Log.i("value", "x=" + x + ""); } } }
10-08 14:00:11.796: D/value(1462): —–>i=0
10-08 14:00:11.796: I/value(1462): j=0
10-08 14:00:11.800: I/value(1462): x=0
10-08 14:00:11.800: I/value(1462): x=1
相关文章推荐
- String、StringBuffer、StringBuilder
- 黑马程序员---OC学习笔记之NSNumber和NSValue的介绍和使用
- 媒体查询(Media Queries)摘抄
- POJ 3368 Frequent values(区间频繁次数 RMQ)
- iOS:触摸控件UITouch、事件类UIEvent
- HDU5496--Beauty of Sequence(水题)
- UIScrollView
- UIViewController的生命周期及iOS程序执行顺序
- android一些常用基础UI控件(比较适合给新手参考)
- UI_GET&POST请求
- HDU 4694 Important Sisters Lengauer_Tarjan算法
- Dynamic Web Module 3.0 requires Java 1.6 or newer
- UI_XML_JSON数据解析
- iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
- 【Foundation-86-1】#import <Foundation/NSValue.h>基础创建
- General Problem Solving Techniques [Intermediate-1]~A - Children's Game
- UITableView与UITableViewCell的透明度
- CYC-爱心暖暖的小动画
- UESTC 1712 Easy Problem With Numbers 除法对和数取模,分解,线段树
- UIScorollView运用与属性详解