break和continue的区别


这里有两个例子向大家展示了 break 和 continue 的区别;同时也展示了带标签的 break 和 continue 的用法: Content 1: package com.shzq.chapall; public class BreakAndContinue { public static void main(String[] args) { int i = 0; outer: for (; true;) { inner: for (; i < 10; i++) { System.out.println("i=" + i); if (i == 2) { System.out.println("continue"); continue; } if (i == 3) { System.out.println("break"); i++; break; } if (i == 7) { System.out.println("continue outer"); i++; continue outer; } if (i == 8) { System.out.println("break outer"); break outer; } for (int k = 0; k < 5; k++) { if (k == 3) { System.out.println("continue inner"); continue inner; } } } } } } Content 2 package com.shzq.chapall; public class BreakAndContinue2 { public static void main(String[] args) { int i = 0; outer: while (true) { System.out.println("Outer while loop"); while (true) { i++; System.out.println("i=" + i); if (i == 1) { System.out.println("continue"); continue; } if (i == 3) { System.out.println("continue outer"); continue outer; } if (i == 5) { System.out.println("break"); break; } if (i == 7) { System.out.println("break outer"); break outer; } } } } } 总结: 1. 一般的 continue 会退回最内层循环的开头(顶部),并继续执行。 2. 带有标签的 continue 会到达标签的位置,并重新进入紧接在那个标签后面的循环。 3. 一般的 break 会中断并跳出当前循环。 4. 带标签的 break 会中断并跳出标签所指的循环。 备注: 在 Dijkstra 的《Goto 有害》论中,他最反对的就是标签,而非 goto 。随着标签在一个程 序里数量的增多,他发现产生错误的机会也越来越多。标签和 goto 使我们难于对程序作静 态分析。这是由于它们在程序的执行流程中引入了许多“怪圈”。但幸运的是,Java 标签不 会造成这方面的问题,因为它们的活动场所已被限死,不可通过特别的方式到处传递程序的 控制权。由此也引出了一个有趣的问题:通过限制语句的能力,反而能使一项语言特性更加 有用。
还剩3页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

彩色泡沫

贡献于2015-01-09

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf