首页 > 代码库 > 基础.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