在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处于多少层循环内
时间: 2024-12-06 04:52:59