一、break、continue以及return的区别
(1)break
break用于循环,表示直接强行跳出当前循环,不再执行剩余代码。当循环中遇到了break语句时,忽略循环体中任何其他语句和循环条件测试,程序控制在循环体后面的语句重新开始。所以,当多层循环嵌套,并且break语句出现在嵌套循环中的内层循环时,它将仅仅只是终止了内层循环的执行,而不影响外层循环的执行。
package com.haobi;
/*
* break
*/
public class Test2 {
public static void main(String[] args) {
for(int i=0;i<10;i++) {
if(i==3) {//如果i值为3,则退出整个循环(因为只有一层循环)
break;//退出整个循环
}
System.out.println("i="+i);
}
}
}
//程序输出结果如下:
i=0
i=1
i=2
(2)continue
continue只能用于循环中,用于停止当次循环,回到循环起始处,进行下一次循环操作。continue语句之后的语句将不再执行,用于跳出循环体中的一部分语句,也就是不执行这部分语句,而不是跳出整个循环执行下一条语句,这就是continue与break的主要区别。简单来说,continue只是中断一次循环的执行而已。
package com.haobi;
/*
* continue
*/
public class Test3 {
public static void main(String[] args) {
for(int i=0;i<10;i++) {
if(i==3) {//如果i值为3,停止当次循环
continue;//退出一次循环
}
System.out.println("i="+i);
}
}
}
//程序输出结果如下:
i=0
i=1
i=2
i=4
i=5
i=6
i=7
i=8
i=9
(3)return
return语句是一个跳转语句,用于表示从一个方法返回(返回一个值或其他复杂类型),可以使程序控制返回到调用该方法的地方。当执行mian方法时,return语句可以使程序执行返回到Java运行系统。
二、break只能跳出当前的循环,如何才能跳出多重循环呢?
答:可以在多重循环外面定义一个标识,然后在循环体里使用带有标识的break语句,这样就可以跳出多重循环。示例代码如下:
package com.haobi;
/*
* 使用break跳出多重循环
*/
public class Break {
public static void main(String[] args) {
out:
for(int i=0;i<5;i++) {
for(int j=0;j<5;j++) {
if(j>=2)
break out;
System.out.println(j);
}
}
System.out.println("break");
}
}
//程序输出结果如下:
0
1
break
上述代码中,内部循环执行到j等于2时,程序跳出双重循环,执行System.out.println(“break”)语句。
三、Java语言是否存在goto关键字?
虽然关键字goto作为Java的保留字,但目前并没有在Java中使用。在C/C++中goto用于跳出多重循环,而在Java语言中,可以使用break和continue来达到同样的效果。需要注意的是,在Java语言中,虽然没有goto语句,但是却能使用标识符加冒号(:)的形式定义标签,如”label:“,这主要是为了在多重循环中方便使用break和continue而设计的。