黑马程序员技术交流社区
标题:
关于跳出循环语句
[打印本页]
作者:
刘学
时间:
2012-8-10 10:34
标题:
关于跳出循环语句
本帖最后由 刘学 于 2012-8-10 15:21 编辑
public class B {
public static void main(String[] agrs){
outer:
//标签
for(int i = 0;i<5;i++){
for(int j = 0;j <4; j++){
if(j==2){
//return;
//break;
//continue
//continue outer;
//break outer;
}
}
}
}
}
请问蓝色部分的几个语句的区别和异同?希望各位用自己的理解方式去讲。
作者:
黄敏
时间:
2012-8-10 18:07
我的回答你看看 红色字体部分
public class B {
public static void main(String[] agrs){
outer: //标签
for(int i = 0;i<5;i++){
for(int j = 0;j <4; j++){
if(j==2){
//return;
return关键字并不是专门用于跳出循环的,而是结束一个方法。一旦在循环体内执行到一个return语句,该方法将会结束,循环自然也随之结束。
//break;
在多重循环中,不带标号的break语句将只退出它所在的内循环
//continue
停止当前循环的迭代,退回循环起始处,开始下次迭代
//continue outer;
带标签的continue会达到标签的位置,并重新进入紧接在那个标签后面的循环。
//break outer;
带标签的break语句从多重循环体的内部跳出到标号所标志的那层循环,并从标号标志的那层循环后面的语句继续执行。
}
}
}
}
}
作者:
魏-玉-彪
时间:
2012-8-10 18:58
//return; 执行到此语句,下面不执行,将值返回给系统。
//break; 执行到此语句本次内循环结束,
//continue 执行到此语句继续向下执行
//continue outer; 执行到此语句结束本次内循环,继续本次外循环
//break outer; 结束外循环,实际是整个循环结束
作者:
黑马-王泽斌
时间:
2012-8-10 19:43
1、//return;执行return后就会停止执行函数中所有下边的代码,然后返回函数,整个函数都停止执行,但如果在try()finally{}中,如果在try中执行了return,依然会先执行finally,在return,而且finally不会改变return返回的值 例如:
public class Test {
public static void main(String[] args) throws Exception {
System.out.println(fun());
}
public static int fun() throws Exception {
int i = 0 ; //给i附初始值
try {
return i; //return i,此时i的值是初始值0
}finally {
++i; //给i自加1,但最后return返回的值依然是初始值0,所以finally无法改变返回值
System.out.println("finally"); //先打印finally再执行return
}
}
}
2、//break;停止并跳出当前方法或循环体,但还会执行函数中其他的方法,还用在switch中。
//continue:跳出当前一次的循环,继续下一次循环。
以下两个也待大神指点
//continue outer;
//break outer;
作者:
左建飞
时间:
2012-8-10 20:48
public class B {
public static void main(String[] agrs){
outer: //标签
for(int i = 0;i<5;i++){
for(int j = 0;j <4; j++){
if(j==2){
//return;//返回值给调用者,并结束这个方法。
//break;//结束
当前
循环,就拿这个程序来说,结束内循环。
//continue;//结束
当前循环的这次循环
,继续下一次循环。其和break单独使用时,下面不能写任何语句,因为执行不到。
//continue outer;//跳出当前的循环,跳到标签处,继续执行标签后面的语句。这个语句和下面的break 标签名;这两条语句一般用于循环嵌套中。
//break outer; //跳出标签所指循环。执行这个所指循环后面的语句。
以上两条的区别是:
}
}
}
}
}
作者:
左建飞
时间:
2012-8-10 21:02
接上面:continue oute是结束当前的循环,继续执行标签所指的循环。
而break outer是直接结束标签所指的循环。
标签就是循环的名字。
break和continue还有一个区别就是break还可以用于switch语句中,而continue只能用于循环语句。
作者:
刘学
时间:
2012-8-10 21:09
谢谢回答,明白了,问题已解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2