在第一个循环中继续,在第二个循环内

时间:2014-05-31 21:23:14

标签: java loops keyword

这将有助于您更好地理解它:

for(Object o : objects){//first loop
    for(int j = 0; i < y; j++){//second loop

        if(something_is_true)
            stop second loop , continue first loop 

    }
}

我应该使用continue关键字吗??

7 个答案:

答案 0 :(得分:9)

您还可以使用label

myLabel: for(Object o : objects){//first loop
    for(int j = 0; i < y; j++){//second loop

        if(something_is_true) {
            continue myLabel;
        }
    }
    //code that will be skipped if you continue to myLabel
    //but will not be skipped if you 'break' inside inner loop.
}

答案 1 :(得分:3)

不,请使用&#39; break&#39;。

for(Object o : objects){//first loop
  for(int j = 0; i < y; j++){//second loop

    if(something_is_true)
       break;

  }
}

答案 2 :(得分:0)

没有。使用break。这将使你脱离内循环,你将继续外循环。

for(Object o : objects){//first loop
  for(int j = 0; i < y; j++){//second loop
    if(something_is_true) break;
  }
}

答案 3 :(得分:0)

对于第二个循环,您可以使用“while”而不是“for”:

for(Object o : objects){//first loop
  int counter=0;
  while(!something_is_true && counter<y){//second loop
    counter++
    if(something happens)
      something_is_true=true;
 }
}

答案 4 :(得分:0)

我认为这是一种更好的方法:

for(Object o : objects)
{
     int j = 0
     while(j < y && something_is_true)
     {
       do_whatever;
       j++;
     }
}

答案 5 :(得分:0)

来自Breaking out of nested loops in Java

您可以使用带有外部循环标签的break。例如:

public class Test {
  public static void main(String[] args) {
    outerloop:
    for (int i=0; i < 5; i++) {
      for (int j=0; j < 5; j++) {
        if (i * j > 6) {
          System.out.println("Breaking");
          break outerloop;
        }
        System.out.println(i + " " + j);
      }
    }
    System.out.println("Done");
  }
}

打印:

0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
Breaking
Done

答案 6 :(得分:-1)

如果您的目标是退出第二个循环并继续第一个循环,则只需要调用break。不需要继续(甚至没有被称为)。