if块执行后,我想将控制转移到外部for循环(i循环)。即,我想跳过内循环(j循环)的所有剩余迭代,并将控制转移到外循环。(i循环)请帮助
for(int i=0;i<ana.length;i++) {
for(int j=i+1;j<ana.length;j++) {
if(a.isAnagram(ana[i],ana[j])) {
temp=ana[i+1];
ana[i+1]=ana[j];
for(int p=i+2;p<j;p++) {
ana[p+1]=ana[p];
}
ana[i+2]=temp;
}
}
}
您可以使用带标签的break。
下面是Java教程中的一个例子:搜索是这里的标签。
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;
}
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at " + i + ", " + j);
} else {
System.out.println(searchfor + " not in the array");
}
}
}
在if块的末尾使用"break"语句。这将跳过"j"循环的剩余迭代,并运行"i"循环的下一次迭代。
for(int i=0;i<ana.length;i++)
{
for(int j=i+1;j<ana.length;j++)
{
if(a.isAnagram(ana[i],ana[j]))
{
temp=ana[i+1];
ana[i+1]=ana[j];
for(int p=i+2;p<j;p++)
{
ana[p+1]=ana[p];
}
ana[i+2]=temp;
break;
}
}
}