-2

在执行 if 块后,我想将控制权转移到外部 for 循环(i 循环)。即我想跳过内循环(j循环)的所有剩余迭代并将控制转移到外循环。(我循环)请帮助

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;
        }
    }
}
4

2 回答 2

1

您可以使用break 和 label

这是 Java 教程中的示例:search is label here。

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");
        }
    }
}
于 2013-08-09T17:15:39.767 回答
0

在 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;
      }
   }
}
于 2013-08-09T17:19:37.597 回答