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名。