[JAVA] Bis Sie verstehen, dass die erweiterte for-Anweisung und die for-Anweisung mit Länge derselbe Prozess sind (behandeln Sie ein mehrdimensionales Array).

Einführung

Sie können eine Schleife schreiben, die die Elemente eines Arrays nacheinander abruft, wobei die Länge als Wiederholungsbedingung in der for-Anweisung verwendet wird.

Obwohl die erweiterte for-Anweisung denselben Prozess einfacher schreiben kann, konnte ich nicht verstehen, "warum die beiden Prozesse gleich sind".

Deshalb möchte ich dieses Mal in diesem Artikel vorstellen, warum die beiden Prozesse bei Verwendung eines mehrdimensionalen Arrays gleich sind und wie ich es verstanden habe.

Schreiben Sie mit erweiterter for-Anweisung

Dieses Mal wird am Beispiel des folgenden dreidimensionalen Arrays jedes Element mit der Methode plintln ausgegeben.


int[][][] array = { { { 1, 2 }, { 3, 4 }, { 5, 6 } }, { { 7, 8 }, { 9, 10 }, { 11, 12 } } };

Schreiben wir zunächst mit der erweiterten for-Anweisung.


for (int[][] tmp1 : array) {
    for (int[] tmp2 : tmp1) {
        for (int tmp3 : tmp2) {
            System.out.println(tmp3);
        }
    }
}

Eine Ganzzahl von 1 bis 12 wird an die Konsole ausgegeben.

Schreiben Sie mit traditioneller Aussage

Als nächstes schreiben Sie, wie Sie die Länge als Wiederholungsbedingung verwenden.

Wenn ich mit Länge schreibe, habe ich wie folgt geschrieben.


for (int i = 0; i < array.length; i++) {
    for (int j = 0; j < array[i].length; j++) {
        for (int k = 0; k < array[i][j].length; k++) {
            System.out.println(array[i][j][k]);
        }
    }
}

Wenn Sie sich array [i] [j] [k] ansehen, können Sie sehen, dass wir die Elemente des Arrays nacheinander extrahieren.

Als ich dies jedoch mit der erweiterten for-Aussage oben verglich, konnte ich nicht sofort verstehen, dass es dasselbe tat. Hier ist der Teil, den ich fühlte "Ich verstehe nicht".

Daher habe ich die Schreibmethode unter Verwendung der Länge wie folgt umgeschrieben.

Informationen zum Schreiben mit Länge finden Sie in einem Formular in der Nähe der erweiterten for-Anweisung


for (int i = 0; i < array.length; i++) {
    int[][] tmp1 = array[i];
    for (int j = 0; j < tmp1.length; j++) {
        int[] tmp2 = tmp1[j];
        for (int k = 0; k < tmp2.length; k++) {
            int tmp3 = tmp2[k];
            System.out.println(tmp3);
        }
    }
}

Durch Schreiben von "int [] [] tmp1 = array [i];" ohne es wegzulassen, konnten wir es fast so machen wie die erweiterte for-Anweisung.

Zusammenfassung

Wenn Sie sich nur die Schreibmethode mit Länge ansehen, ist es einfacher zu verstehen, was die Schreibmethode mit array [i] [j] [k] tut, aber sie entspricht der erweiterten for-Anweisung. Ich denke, es wäre einfacher zu verstehen, wenn es ein Prozess wäre, wenn Sie ihn schreiben würden, ohne "int [] [] tmp1 = array [i];" wegzulassen.

Wenn Sie wie ich nicht ganz verstehen, "warum die beiden Prozesse gleich sind", hoffe ich, dass dieser Artikel Ihnen beim Verständnis hilft.

Recommended Posts

Bis Sie verstehen, dass die erweiterte for-Anweisung und die for-Anweisung mit Länge derselbe Prozess sind (behandeln Sie ein mehrdimensionales Array).
Vergleichen Sie die Geschwindigkeit der for-Anweisung und der erweiterten for-Anweisung.
Hinweis: Zuweisen und Anzeigen von Werten für mehrdimensionale Arrays und Üben erweitert für Anweisungen