use*_*221 7 java label for-loop break labelled-break
嗨,我是java的初学者,我的程序有4个for循环:我的程序就像这样,如果b是true,该元素将从pointList中删除,并且n将是n-- 我想要从所有for循环中出来并从第一个出来对于循环,这样l会l++,我怎么能做到这一点?与休息声明?
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)
在循环中,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)