Was sind verschachtelte Schleifen? Wann nutze ich verschachtelte Schleifen?

Eine verschachtelte Schleife ist eine Schleife, die in einer Schleife ausgeführt wird. Bei jedem Durchlauf der äußeren Schleife wird die innere Schleife ausgeführt. Das heißt, wenn die äußere Schleife n-mal ausgeführt wird und die innere Schleife als solche m-mal, dann wird der innere Schleifenkörper insgesamt n*m-mal durchlaufen.

Im folgenden Code wird diese Berechnung durchgeführt, indem bei jedem Durchlauf der inneren Schleife der Zähler count um 1 erhöht wird.

final int N = 200, M = 1000;
int count = 0;
for (int i = 0; i < N; i++) {
    for (int j = 0; j < M; j++) {
        count++;
    }
}
System.out.println(count); // Ausgabe: 200000

Anwendungsmöglichkeiten von verschachtelten Schleifen:

  • Iterieren über mehrdimensionale Datenstrukturen wie Arrays, Bilddaten, …
  • Sortieralgorithmen, z.B. Bubble-Sort, Selection-Sort, …
  • Rechnen mit Matrizen

Im Folgenden wird gezeigt, wie man mit einer doppelten for-Schleife eine Addition von zwei Matrizen durchführt:

static double[][] add(double[][] x, double[][] y) {
    double[][] result = new double[x.length][x[0].length];
    for (int row = 0; row < result.length; row++) {
        for (int col = 0; col < result[0].length; col++) {
            result[row][col] = x[row][col] + y[row][col];
        }
    }
    return result;
}

public static void main(String[] args) {
    double[][] m1 = { { 1, 2 },
                      { 3, 4 }, 
                      { 5, 6 } };
    double[][] m2 = { { 2, 4 }, 
                      { 4, 6 }, 
                      { 5, 1 } };

    double[][] m3 = add(m1,m2);
    System.out.println(Arrays.deepToString(m3));
}