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
在①处,如果只要能证明这个数是非质数,则不再执行后面的%操作了(跳出里循环)。
在②处,如果这个数是非质数,则不打印出来(即不执行③及其以后的语句)。