-2

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

2 に答える 2

1

label で 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");
        }
    }
}
于 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 に答える