break的作用是直接强行跳出它所在的循环,忽略循环体中任何其他语句和循环条件测试(如果这个break在循环中的if语句里面,不是跳出if语句,而是跳出循环语句,若在一系列嵌套循环中使用break 语句时,则它将仅仅终止最里面循环),去执行这个循环(大括号)以后的语句,break在循环语句中是这样,在switch语句用功能也是这样的。
而continue是当条件满足的时候不再执行这个循环里它后面的语句,而是退回循环起始处,(经判断是否再)开始新的循环。当带标签时,则跳到标签处。
示例1:
public class ContinueAndBreak { public static void main(String[] args) { for (int i = 1; i < 20; i++) { if (i == 14) break; if (i % 9 == 0) continue; System.out.print(i + " "); } System.out.println(); int i = 0; while (true) { i++; int j = i * 27; if (j == 1269) break; if (i % 10 != 0) continue; System.out.print(i + " "); } } }
输出:1 2 3 4 5 6 7 8 10 11 12 13
10 20 30 40
在上面的for语句中,如果出现14就跳出本次循环,继续下面的while循环,在前面的14个数中(从0开始),只有9%9==0,所以当i==9的时候,continue了一下,就没有输出"9"了。后面的while也是同一个道理。
示例2:
//输出100-200内的质数 public class ContinueTest { public static void main(String args[]) { int count=0; for (int i = 100; i < 200; i++) { boolean f = true; for (int j = 2; j < i; j++) { if (i % j == 0) { f = false; break;//① } } if (!f) { continue;//② } count++; System.out.print(" " + i);//③ if(count%10==0) System.out.println(); } } }
输出:
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199
在①处,如果只要能证明这个数是非质数,则不再执行后面的%操作了(跳出里循环)。
在②处,如果这个数是非质数,则不打印出来(即不执行③及其以后的语句)。