黑马程序员技术交流社区
标题:
在JAVA中如何跳出当前的多重嵌套循环?
[打印本页]
作者:
._抬眉﹏
时间:
2014-4-11 11:22
标题:
在JAVA中如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如,
ok:
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
System.out.println(“i=” + i + “,j=” + j);
if(j == 5) break ok;
}
}
另外,我个人通常并不使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中查找到某个数字。
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length && !found;i++)
{
for(int j=0;j<arr[i].length;j++)
{
System.out.println(“i=” + i + “,j=” + j);
if(arr[i][j] == 5)
{
found = true;
break;
}
}
}
跳到ok的那个不是和C里面的goto语句一样吗?
两者有什么区别?
又有什么千丝万缕的联系?
还有java中为什么不用goto?
作者:
491138002
时间:
2014-4-11 11:34
java中暂时goto还没有定义,如果你要使用类似的,就用continue,break等语句
作者:
syusikoku
时间:
2014-4-11 11:41
你想要跳出当前循环直接使用break了就行了。如果你想要跳出重循环。你使用break指定标号就可以了。二维数组不也是使用for嵌套遍历的吗?你可以在循环里面进行指定的。
作者:
Monkey·D·Chas
时间:
2014-4-11 12:18
没听说过Java有goto这个流氓语句。 一般情况都是用break 结束循环。或者continue结束本次循环。 只要你括号扩的对,就可以结束的
作者:
Ricky_Nick
时间:
2014-4-11 12:35
其实goto虽然还不是java中的关键字,但是在很多资料里都说过goto是java的保留字,所有这说明有可能以后会用到。你说的上面这种跳出循环,用标号和不用标号都可以实现,但是如果循环很复杂,用标号逻辑更清楚一些,增加了代码的可读性。至于为什么不用goto,那是因为在程序里用goto,内存跳来跳去,容易出错,而且会写出面条式的程序,杂乱无章。所以写大程序的时候,一般是会避免使用goto关键字的,即使在C里也不例外。(个人观点,欢迎交流)
作者:
呆呆沙师妹
时间:
2014-4-11 13:29
使用标号结合break、continue实现循环控制比较简洁。使用布尔逻辑值控制,如果循环较简单,break和continue使用较少,问题不大,但如果循环较多,break和continue同时使用时,就将设置多个布尔逻辑值进行控制,代码量会增加,增加出错机率。
作者:
K.L.Zous
时间:
2014-4-11 16:12
break跳出循环体,continue跳过当前循环
作者:
._抬眉﹏
时间:
2014-4-13 13:42
恩。问题基本上弄明白了,感谢大家!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2