Methode erklären

Ich weiß, dass es eine Anfängerfrage ist und jeder hier es weiß, aber
wir sollen folgende Methode analysieren (erklären)
Code:
public void ankuppeln(Waggon einWaggon) {
if(anzahl < MaxZahl) {
for (int i = Anzahl; i > 0; i--) 
Waggons[i] = Waggons[i-1];
Waggons[0] = ein Waggon;
Anzahl++; 
      }
}
Die if-Anweisung verstehe ich gut, bei der for-Schleife hapert es aber.
Kann mir jemand hier die for-Schleife verständlich erklären?
Grüße.
 
http://openbook.rheinwerk-verlag.de...02_007.htm#mjdcbb2e90942d428b2c033d90ed115f3b

Code sagt mehr als tausend Worte:
Code:
for (init; test; incr) {
  statement_s;
}
lässt sich schreiben als
Code:
{
  init;
  while (test) {
    statement_s;
    incr;
  }
}

D. h. die Schleife
Code:
for (int i = Anzahl; i > 0; i--) 
    Waggons[i] = Waggons[i-1];
ist äquivalent zu
Code:
{
    int i = Anzahl;
    while (i>0) {
        Waggons[i] = Waggons[i-1];
        i--;
    }
}

Was das Analysieren betrifft: beachte, dass in Java die Groß-/Kleinschreibung von Bedeutung ist. D. h. in Deinem Code ist "anzahl" im if-Statement etwas anderes als "Anzahl" im for-Statement.
 
Kann mir jemand hier die for-Schleife verständlich erklären?
Du verstehst es vielleicht besser, wenn du dir eine Klasse Zug anschaust die diese Methode beinhaltet.
Java:
public class Train {
    private int MaxZahl = 0;
    private int Anzahl = 0;
    private Waggon[] Waggons = null;

    public Train(int MaxZahl) {
        this.MaxZahl = MaxZahl;
        Waggons = new Waggon[MaxZahl];
    }

    public void ankuppeln(Waggon einWaggon) {
        if (Anzahl < MaxZahl) {
            for (int i = Anzahl; i > 0; i--)
                Waggons[i] = Waggons[i - 1];
            Waggons[0] = einWaggon;
            Anzahl++;
        }
    }

    @Override
    public String toString() {
        StringBuffer tmp = new StringBuffer("engine-");
        for (int i = 0; i < Waggons.length; i++) {
            if (Waggons[i] == null)
                break;
            tmp.append("waggon[" + (i + 1) + "]");
        }
        return tmp.toString();
    }
}
 

Zurück
Oben