java嵌套for循环的跳出

for(Object object : objects) {
            for(Object2 object2 : objects2) {
                if(x>0)......
            }
}

怎么才能让if(x>0)时结束object2的循环,并且让object执行下一次循环 !在线等,求救

如果是两层循环,只能用goto了,或者加上一个判断变量,但是那样写起来麻烦。

多层只有goto了。

不能用contiune跳出当前一层循环吗?

或者加上一个判断变量,但是那样写起来麻烦。
刚才网络不好,多说两句这个方案。
boolean shouldcontinue;
for(Object object : objects) {
for(Object2 object2 : objects2) {
if(x>0)
{
shouldcontinue = true;
break;
}
}
if (shouldcontinue) continue;
}

if(x>0)时结束object2的循环,并且让object执行下一次循环 !
直接在if(x>0){break;};不就结束object2,开始object下一循环了吗?x,是成员变量吗?

http://lavasoft.blog.51cto.com/62575/178997/
如果看不到图,看这里。

for(Object object : objects) {
for(Object2 object2 : objects2) {
if(x>0) {
break;
}
}
if(x>0) {
continue;
}
}

最好是不要用goto 把break 和continue好好看看

firstFor: for(int i = 0; i < 5; i++){
for(int j = 0 ; j < 5; j++){
continue firstFor;
}
System.out.println(5) ;
}

给你来一个例子,这里应该可以看懂吧,这里的firstFor相当于你给你的for循环起了一个名字,然后在名字后面加一个":"就可以写for循环了
然后continue firstFor;就是你要继续叫这个名字的for循环。名字你可以随便起。

for(Object object : objects) {
for(Object2 object2 : objects2) {
if(x>0){
continue;
}
}
}

out: for(Object object : objects) {
for(Object2 object2 : objects2) {
if(x>0)
continue out;
}
}

简单来说,“out”代表着最外层循环的入口,名字随便,可以叫“dd”都可以。
continue out表示立即转入外层的下个循环。
同时break out表示直接跳出外层。
说得有点笼统。。。。

直接contiune跳出

1 对于双层循环,直接在if语句体内部加break,可以结束本层循环,跳转到最近循环体,也即是外层循环。
2 对于多层循环,可采取楼上各位所说的加lable标签,然后在循环体中需要跳出的位置使用,break lable名。