public class BreakTest //一次循环体, 这里加不加Label无区别 private static void once() { for (int index = 0; true; index ++) { if (index == 10) { System.out.println("once break:" + index); break; // 直接跳出本循环 输出一次 index = 10 } } Label:// 此处不能有非循环代码,除非用代码块包括如下 for (int index = 0; true; index ++) { if (index == 10) { System.out.println("once break Label:" + index); break Label; // 直接跳出label标志循环 } } /* Label: { System.out.println("xxxxxxxxxxxx"); for (int index = 0; true; index ++) { if (index == 10) { break Label; // 直接跳出label标志循环 } } }*/ } // 多次循环体, Label真正用处 private static void moreOnce() { Label:// 标记循环1,break label会跳出 循环1 for (int index = 0; true;) {// 循环1 for (index = 0; true; index ++) {// 循环2 if (index == 10) { index = 0; System.out.println("moreOnce break Label:" + index); sleep(500); break Label; // 这里break出 Label标记的循环,"moreOnce break Label"只会输出一次 } } } for (int i = 0; i < 10; i++) {//循环1 Label:// 标记循环2,break label会跳出 循环2 for ( int index = 0; true;) {// 循环2 for (index = 0; true; index ++) {// 循环3 if (index == 10) { System.out.println("moreOnce break Label:" + i); break Label; // 这里break出 Label标记的循环,"moreOnce break Label"只会出10次(依赖循环1,每次break出循环2),如果标记到循环1,只会输出一次 } } } } for (int index = 0; true;) { for (index = 0; true; index ++) { if (index == 10) { index = 0; System.out.println("moreOnce break:" + index); sleep(500); break; // 这里break出内循环,外部循环不能跳出;每500毫秒会输出一次 } } } } private static void sleep(long timeMillis) { try { Thread.sleep(timeMillis); } catch (InterruptedException e) { } } public static void main(String[] args) { moreOnce(); } }
break和break lable的用法(区别continue)
猜你喜欢
转载自hq82001.iteye.com/blog/2223847
今日推荐
周排行