Java Schleife?

2 Antworten

Hey,

fast richtig.

public class SquaresArray {
    public static void main(String[] args) {
        SquaresArray squaresArray = new SquaresArray();
        int[] array = squaresArray.generateSquaresArray();
        squaresArray.printArrayReverse(array);
    }

    public int[] generateSquaresArray() {
        int[] squaresArray = new int[10];
        for (int i = 0; i < squaresArray.length; i++) {
            squaresArray[i] = i * i;
        }
        return squaresArray;
    }

    public void printArrayReverse(int[] array) {
        for (int i = array.length - 1; i >= 0; i--) {
            System.out.println(array[i]);
        }
    }
}

"For (i=9; i>zahlen.lenght; i--)" bricht direkt ab, weil die Bedingung i>zahlen.length sofort erfüllt wird. Daher nutzt Du i >= 0.
Das ist genau andersrum als bei Schleifen, welche den Index inkrementieren (i++, oder auch i = i +1).
Das i-- ist eine Kurzform von i = i - 1. Das heißt i wird bei jedem Schleifendurchlauf um 1 verringert. Die Schleifenabbruchbedingung muss also prüfen, ob der Index größer gleich 0 ist. Du fängst bei der Schleife also vom Ende des Arrays an.

Gruß

Woher ich das weiß:eigene Erfahrung

For (i=9; i>zahlen.lenght; i--)

Die Schleife bricht ja sofort ab nach der ersten Iteration weil dein zahlen.length ja bereits 10 ist..

Du müsstest i=zahlen.length-1 setzen und dann prüfen ob i>=0 ist:

for (let i = zahlen.length - 1; i >= 0; i--) {

console.log(zahlen[i]);

EinstNewt142 
Fragesteller
 29.04.2024, 23:17

Also i=9: i>0; i--

Das erste ist immer der Startwert, das zweite Endwert?

Kann man sich das naxh diesem Schema merken?

0
Berndban  30.04.2024, 07:19
@EinstNewt142

Du definierst halt eine variable, i. Das passiert zum Beginn vor der ersten Ausführung der Schleife einmalig.

Ich würde sie mit zahlen.length -1 definieren, auch wenn das in deinem Fall 9 ist - mag ja vielleicht mal weitere Fälle geben dann muss man nichts umschreiben.

Das zweite ist die Prüfung, die jedes Mal stattfindet. Die Schleife läuft solange i > 0 ist in dem Beispiel. Es wird also immer geprüft ob das stimmt, dann wird ausgeführt, sonst geht's weiter im Code nach der Schleife.

Das i-- ist eine Operation, die nach jeder Iteration der Schleife durchgeführt wird und verringert das i um 1. Irgendwann ist dann I eben so klein dass die Prüfung i>=0 nicht mehr greift. Dann wird die Schleife nicht mehr ausgeführt.

Ich würde da nichts versuchen durch Eselbrücken zu merken sondern einfach verstehen was du da treibst.

0