我有一个这样的嵌套循环结构:
for (Type type : types) {
for (Type t : types2) {
if (some condition) {
// Do something and break...
break; // Breaks out of the inner loop
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我怎样才能摆脱两个循环?我看过类似的问题,但没有一个特别关注Java.我无法应用这些解决方案,因为大多数使用了gotos.
我不想把内循环放在不同的方法中.
我不想重新运行循环.当我完成循环块的执行时.
这段代码让我盯着我的屏幕几分钟:
loop:
for (;;) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
(第137行)
我以前从未见过这个,我不知道Java有一个"循环"关键字(NetBeans甚至不像关键字那样对它进行着色),并且它可以用JDK 6编译得很好.
解释是什么?
可能重复:
如何在双/嵌套循环中断开主/外循环?
我有以下情况:
for(int i = 0; i < schiffe.length-1; i++){
if(schiffe[i].schaden){
schlepper.fliege(schiffe[i].x,
schiffe[i].y,
schiffe[i].z);
schlepper.wirdAbgeschleppt = schiffe[i];
for(int k = 0; k < stationen.length-1; k++){
if(stationen[k].reparatur == null){
schlepper.fliege(stationen[k].x,
stationen[k].y,
stationen[k].z);
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要
schlepper.fliege(stationen[k].x,
stationen[k].y,
stationen[k].z);
Run Code Online (Sandbox Code Playgroud)
执行一次,然后突破内部循环并继续使用for(int i ...循环.所以我在代码中使用了一个中断.但我不确定这是否正确.中断是否会导致中断对于所有循环或仅用于第二个循环?
我被告知在OOP语言中使用break和continue标签不是OOP编程风格.你能详细解释一下原因和问题是什么吗?
诀窍在于这个标签词.我的意思是打破/继续.
class BreakWithLabelDemo {
public static void main(String[] args) {
int[][] arrayOfInts = {
{ 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search:
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length;
j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search;
}
}
} …
Run Code Online (Sandbox Code Playgroud) 当count变为9时,我想从两个for循环中退出.我使用break
它但它只能退出第一个for循环.怎么办?
ArrayList<String> list = new ArrayList<String>();
int count = 0;
System.out.println("Before entering to loop");
for(int i=0;i<5;i++){
list.add("XYZ"+i);
for( int j=0;j<5;j++){
list.add("ABC"+j);
count++;
if(count==9){
System.out.println("I want to exit from here.");
break;
}
System.out.println("i="+i+"::j="+j);
}
System.out.println("------------");
}
for(String str:list){
System.out.println(str);
}
}
Run Code Online (Sandbox Code Playgroud)