Wie gibt man eine Listeninitialisierung rückwärts mit einem for-Schleife aus?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Als Versuch dir das herunterzubrechen kommentiere ich mal was da steht:

int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; // das ist ein Array ok?

for (int i = a.length - 1; i >= 0; i--)
// i ist die Länge des Array, i >=0 bedeutet an der Stelle wenn Null erreicht ist also 0, i-- Zählt rückwärts bis es irgendwann i >= 0 ist.
 {
 System.out.println("Die Zahlen Rueckwaerts ergeben: " + a[i]);
 }

Damit hoffe ich dir behilflich zu sein.

LG Alex K

Woher ich das weiß:Berufserfahrung
Von einem Experten bestätigt
for (<init>; <break_condition>; <increment>)

Die For-Schleife tut quasi folgendes:

Vor dem erstem Durchlauf wird einmal der <init>-Teil ausgeführt. Dabei werden z.B. Zählvariablen definiert und initialisiert (hier wird 'i' definiert und gleichzeitig mit "a.length - 1" initialisiert).
Zu beachten ist hierbei, dass darin definierte Variablen nur in der For-Schleife definiert sind (als wären sie in einem extra Scope, der den Kopf sowie den Körper der For-Schleife umfasst).

Vor jedem Durchlauf wird dann <break_condition> evaluiert. Liefert diese Auswertung "true" zurück, dann wird der Schleifenkörper ausgeführt, liefert diese Auswertung "false" zurück, dann wird die Schleifenausführung abgebrochen und das Programm springt direkt an die Stelle nach der For-Schleife.

Als nächstes wird dann der Schleifen-Körper ausgeführt.

Nach Ausführung des Schleifenkörpers wird der <increment>-Teil ausgeführt. Dieser dient quasi dazu, Zählvariablen zu incrementieren, theoretisch kann man ihn aber auch noch für anderes Zeug missbrauchen.

Sobald das geschehen ist springt die Schleife zum nächstem Durchlauf, prüft zuerst wieder die <break_condition>, etc.