首页 > 代码库 > 基础.break; continue; return
基础.break; continue; return
在break后紧跟一个标签,这个标签用于标识一个外层循环。
Java中的标签只有放在循环语句之前才有作用。
public class BreakTest2{ 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; } } } }}
输出结果:
i的值为:0 j的值为:0
i的值为:0 j的值为:1
break后的标签必须是一个有效的标签,即这个标签必须在break语句所在的循环之前定义,或者在其所在循环的外层循环之前定义。当然,如果把这个标签放在break语句所在的循环之前定义,也就失去了标签的意义,因为break默认就是结束其所在的循环。
区别:
break是完全终止循环本身;continue只是终止本次循环。
public class ContinueTest{ public static void main(String[] args) { for (int i = 0; i < 3 ; i++ ) { System.out.println("i的值是" + i); if (i == 1) { //略过本次循环的剩下语句 continue; } System.out.println("continue后的输出语句"); } }}
输出结果:
i的值是0
continue后的输出语句
i的值是1
i的值是2
continue后的输出语句
从这个意义上看,如果把continue放在单次循环的最后一行,这个语句是没有任何意义的——因为它仅仅忽略了一片空白。
public class ContinueTest2{ 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; } } } }}
j的值将无法超过1:每当j==1,continue outer就结束并开始下一次的外层循环
public class ReturnTest{ public static void main(String[] args) { for (int i = 0; i < 3 ; i++ ) { System.out.println("i的值是" + i); if (i == 1) { return; } System.out.println("continue后的输出语句"); } }}
循环执行到i==1时,程序将完全结束。
return直接结束整个方法,不论这个return处于多少层循环内
基础.break; continue; return
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。