Tim Tepaße: Java Objekt-Return in einer For-Schleife

Beitrag lesen

Hallo,

for (ListenElement frosch = anfang; frosch != null; frosch=frosch.getWeiter())>

Dein Professor will Dir eine einfache einfach verkettete Liste beibringen. So eine Liste besteht aus einzelnen Elementen, hier als Objekte der Klasse ListenElement implementiert. Wenn man nur die Informationen anguckt, die in den Listen-Element-Objekten gespeichert sind, dann sind das zum einen eine Referenz auf die im ListenElement gespeicherten Daten und eine Referenz auf das in der Liste folgende Listenelement:

( daten | weiter )

„weiter“ zeigt nun auf ein weiteres Listenelement oder auf null, wenn Du am Ende angelangt bist. Die Liste [1, 2, 3] wird dann so repräsentiert:

( daten | weiter )
      ↓        ↓
      1        ( daten | weiter )
                   ↓        ↓
                   2        ( daten | weiter )
                                ↓        ↓
                                3       null

„Verkettet“ heisst diese Liste, weil ein Listenelement immer auf das nächste zeigt. In Deiner for-Schleife passiert nun folgendes:

• Die Variable „frosch“ zeigt am Anfang der Schleife, aber auch nur dort auf das erste Listenelement, das da „anfang“ heisst.
• Es wird im jedem Schleifendurchlauf getestet ob frosch gleich null ist, d.h. ob man schon am Ende ist.
• Wenn nicht, wird irgendwas im Schleifenrumpf gemacht.

• Jetzt kommt frosch=frosch.getWeiter() – die Variable frosch zeigt danach auf das Objekt, das das „weiter“ des erstens Objektes war. Also auf das zweite Listenelement. Die Variable frosch verändert sich also mit jedem Durchlauf der Schleife; schließlich ist sie variabel. Stell es Dir vor wie einen weitern Zeiger in meiner obigen ASCII-Art, der sich bewegt.

• Und irgendwann kommt wird dann dem „frosch“ die „null“ zugewiesen, weil im letzte Listenelement „weiter“ auf null zeigt. Konsequenterweise wird im darauf folgenden Schleifendurchlauf wieder darauf getestet, ob auf null gezeigt wird und dann die Schleife abgebrochen.

Es ist bei so etwas, gerade wenn man versucht es ganz am Anfang stehend zu lernen, wirklich oft hilfreich, sich die Strukturen aufzumalen und gedanklich durchzugehen. Gemalte Boxen und Pfeile mögen albern wirken, helfen aber. ;)

Tim