黑马程序员技术交流社区
标题:
跳出多重循环
[打印本页]
作者:
せR3n、何必装纯
时间:
2011-11-23 10:43
标题:
跳出多重循环
在学习中遇到一个问题
如果我们使用break可以跳出当前循环,
for (int i = 0; i < 5; i++) {
if(i==2){
break;
}
}
,但是现在我有多重循环,我怎么跳出最外一层的循环
例如:
for (int i = 0; i < 5; i++) {
System.out.println("i= "+i);
for (int j = 0; j < 5; j++) {
System.out.println("j="+j);
for (int j2 = 0; j2 < 5; j2++) {
if (j2==2) {
//跳出所有的循环 怎么办.....
}
}
}
}忘高手指点
作者:
崔浩
时间:
2011-11-23 11:05
outer://定义标签,紧跟英文的“:”的标识符
System.out.println("i= "+i);
for (int j = 0; j < 5; j++) {
System.out.println("j="+j);
for (int j2 = 0; j2 < 5; j2++) {
if (j2==2) {
break outer;//跳出来外层循环也可以用continue跳过标签指定的那层循环的那次循环
}
}
}
}
作者:
肖岑锋
时间:
2011-11-23 11:14
楼上正解。在循环外定义一个标签是一种方法。但一般来说最好
是让外层的循环条件表达式的结果可以受到里层循环体代码的控制
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;
}
}
}
作者:
袁世宇
时间:
2011-11-23 11:42
本帖最后由 袁世宇 于 2011-11-23 11:45 编辑
breakFor: for (int i = 0; i < 5; i++) {
System.out.println("i= "+i);
for (int j = 0; j < 5; j++) {
System.out.println("j="+j);
for (int j2 = 0; j2 < 5; j2++) {
if (j2==2) {
break breakFor;
}
}
}
}
使用任意字符串,如例子中的breakFor,直接break到最外层循环。
作者:
冯敏
时间:
2011-11-23 13:16
最好的办法就是使用带标号的跳转语句
out:for (int i = 0; i < 5; i++) {
System.out.println("i= "+i);
inner: for (int j = 0; j < 5; j++) {
System.out.println("j="+j);
for (int j2 = 0; j2 < 5; j2++) {
if (j2==2) {
}
}
}
}
这样想跳出哪个循环就直接用break 标记名跳出就行了
作者:
程立彬
时间:
2011-11-23 13:29
可以控制外层的循环条件使他为假,这样就会跳出了。而且这个方法比较好!
作者:
强子
时间:
2011-11-23 13:34
楼上全正解
最简单的就是
i = 5;
j = 5;
break;
作者:
颜小飞
时间:
2011-11-23 22:47
本帖最后由 颜小飞 于 2011-11-23 22:48 编辑
跳出外部循环的方式主要有两种:
1、在外部循环外定义一个标记,
outfor://第一种方式
for(int i=0;i<10;<i++)
{
for(int j=0;j<10;j++)
{
if(i==5&&j==5)
break outfor;//跳出外部循环
}
}
复制代码
2,在循环最外定义一个boolean的变量,内层循环去改变这个boolean的值,根据这个值来判断是否跳出
boolean check=false;//定义一个变量值来判断是否跳出
for(int i=0;i<10;<i++)
{
if(check)//如果为true则跳出
break;
for(int j=0;j<10;j++)
{
if(i==5&&j==5)
check=true;
break;//跳出内层循环
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2