我们怎么能从4内循环出去?

use*_*221 7 java label for-loop break labelled-break

嗨,我是java的初学者,我的程序有4个for循环:我的程序就像这样,如果btrue,该元素将从pointList中删除,并且n将是n-- 我想要从所有for循环中出来并从第一个出来对于循环,这样ll++,我怎么能做到这一点?与休息声明?

for (int l = 0; l < n; l++) {
  for (int i = 1; i < (n - 2); i++) {
      for (int j = i + 1; j < (n - 1); j++) {
          for (int k = j + 1; k < n; k++) {
              if (l != i && l != j && l != k) {
                  boolean b = isOK(pointList.get(l), pointList.get(i), pointList.get(j), pointList.get(k));
                  System.out.println(b);
                  if (b == true) {
                      pointList.remove(pointList.get(l);
                      n--;
                      break;
                  }
                  else
                      System.out.println(b);
              }
           }
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

cod*_*ict 17

您可以使用标记的中断:

      for (int l = 0; l < n; l++) {
 foo:    for (int i = 1; i < (n - 2); i++) {
            for (int j = i + 1; j < (n - 1); j++) {
                for (int k = j + 1; k < n; k++) {
                    if (l != i && l != j && l != k) {
                        boolean b = isOK(pointList.get(l), pointList.get(i), pointList.get(j), pointList.get(k));
                        System.out.println(b);
                        if (b == true) {
                            pointList.remove(pointList.get(l);
                            n--;
                            break foo;
                        }
                        else
                            System.out.println(b);
                    }

                }

            }
        }
    }
Run Code Online (Sandbox Code Playgroud)


bra*_*ain 5

在循环中,break语句终止内循环,同时continue跳到下一次迭代.为了使这两个语句在与内部语句不同的循环上工作,您需要使用标签.这样的事情应该有效:

outerloop:      
        for (int l = 0; l < n; l++) {
            for (int i = 1; i < (n - 2); i++) {
                for (int j = i + 1; j < (n - 1); j++) {
                    for (int k = j + 1; k < n; k++) {
                        if (l != i && l != j && l != k) {
                            boolean b = isOK(pointList.get(l), pointList.get(i), pointList.get(j), pointList.get(k));
                            System.out.println(b);
                            if (b == true) {
                                pointList.remove(pointList.get(l);
                                n--;
                                continue outerloop;
                            }
                            else
                                System.out.println(b);
                        }

                    }

                }
            }
        }
Run Code Online (Sandbox Code Playgroud)