本文通过代码案例整理了break和continue区别的面试题,更好的理解它们的区别。
- break直接中断当前的整个循环,continue跳出本次的循环进入下一次。
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1;i<=100; i++) {
sum = sum + i;
if (i == 90) {
break;
}
}
System.out.println(sum);//4095
}
}
//如果把break换成continue
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1;i<=90 ; i++) {
sum = sum + i;
if (i == 100) {
continue;
}
}
System.out.println(sum);//5050
}
}
- 使用for循环计算从1到100时,我们并没有在for()中设置循环退出的检测条件。但是,在循环内部,我们用if判断,如果i==90,就通过break退出循环。e而在continue的情况的只是终止了本次循环,并不影响下次循环。所以break是加到90就结束了,而continue加到100才停止
- 因此,break语句通常都是配合if语句使用。要特别注意,break语句总是跳出自己所在的那一层循环
- 两个关键字不能共用,只能用一个,而且。关键字的后面不允许出现代码。
private static void method() {
// 1.打印100以内的偶数
for(int i=0;i<101;i++) {
if(i%2==0) {
System.out.println(i);
if(i==50) {
//共同点,关键字的后面不允许出现代码!
//break;//立刻结束循环
continue;//结束这次,循环继续
}
}
}
}
总结
break语句可以中断整个自身所在的循环,;
break语句通常配合if,在满足条件时提前结束整个循环;
continue语句可以提前结束本次循环;
continue语句通常配合if,在满足条件时提前结束本次循环。
在多层嵌套循环中,ontinue语句同样是结束本次自己所在的循环。
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=10; i++) {
System.out.println("begin i = " + i);
if (i % 2 == 0) {
continue; // continue语句会结束本次循环
}
sum = sum + i;
System.out.println("end i = " + i);
}
System.out.println(sum); // 25
}
}