java提供了continue和break来控制循环结构,除此之外,return可以结束整个方法,当然也就结束了一次循环。
break:
某些时候需要在某种条件下出现时强行终止循环,而不是等到循环条件为false时才退出循环。此时就可以用break完成此功能。break用于完全结束一个循环,跳出循环体,不管哪种循环,一旦在循环体中遇到break,系统就完全结束该循环。
public class BreakTest {
public static void main(String[] args) {
// 外层循环,outer作为标志符
outer:
for (int i = 0; i < 5; i++) {
// 内循环
for (int j = 0; j < 3; j++) {
System.out.println("i的值为:" + i + "j的值为:" + j);
if (j == 1) {
// 跳出outer所标志的外循环
break outer;
}
}
}
}
}
输出结果为:
break后的标签必须是一个有效的标签,即这个标签必须在break语句所在的循环定义之前定义,或者在其所在循环的外层循环之前定义。
continue:
continue的功能和break有些类似,但continue只是忽略本次循环剩下的语句,接着开始下一次的循环,并不会终止循环;而break则是完全终止循环本身。
public class ContinueTest {
public static void main(String[] args) {
// 外层循环
outer:
for (int i = 0; i < 5; i++) {
// 内循环
for (int j = 0; j < 3; j++) {
System.out.println("i的值为:" + i + "j的值为:" + j);
if (j == 1) {
// 忽略outer标签所指示的循环中本次循环所剩下的语句
continue outer;
}
}
}
}
}
输出结果为:
continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下次循环。这个标签通常应该放在continue所在循环的外层循环之前定义。
return:
return并不是专门用于结束循环的,它的功能是结束一个方法,当一个方法执行到一个return语句时,那么这个方法将被结束。
public class ReturnTest {
public static void main(String[] args) {
//一个简单的for循环
for(int i = 0; i < 3; i++){
System.out.println("i的值是:" + i);
if(i == 1){
return;
}
System.out.println("return后的输出语句");
}
}
}
输出结果为:
return直接结束整个方法,不管这个ruturn处于多少层循环之内。