next up previous contents index 6163656769
Next: 3.4 Ergänzungen zu Schleifen Up: 3.3 Schleifen Previous: 3.3.1 Die endliche Schleife:   Contents   Index


3.3.2 Die bedingte Schleife: While-Schleife

Eine andere, aber in diesem Falle etwas unübliche Möglichkeit wäre es gewesen, die Zuweisung in der folgenden Form durchzuführen:

>>>while i in range (4):

...  feld[i]=[1,2,3,4]

...  i=i+1

Warum funktioniert das Ganze so nicht? Ja, worauf zeigt denn der Name i? Während die »For« tatsächlich eine Zuweisung ist, bietet »while« lediglich nur einen Vergleich an. Im Gegensatz zu »for«, setzt »while« den Index »i« nicht automatisch bei jedem Durchlauf um »eins hoch«. Daher muss innerhalb der Schleife dieses zusätzlich erfolgen. Aber, bevor die Schleife beginnt, muss auch ein Startwert angegeben werden. Es fehlt daher vor dem Beginn der Schleife die Zuweisung »i=0«. Bitte bedenken Sie, dass die letzte Zeile »i=i+1« auf jeden Fall zum Anweisungsblock gehören muss! Daher muss sie genauso eingerückt werden wie die vorletzte Zeile. Wenn Sie das nicht tun, wird i erst ausserhalb der Schleife verändert, was eine Endlosschleife zur Folge hat.

While-Schleifen sind wichtig, aber benutzen Sie die For-Schleife sooft es geht, denn diese kann niemals zu einer Endlosschleife werden. Die entsprechende »elegante« Form der Doppelschleife würde in diesem Fall so aussehen:

>>>i=0

>>>while i in range (4):

...   j=0

...   while j in range (4):

...      feld[i][j]=j+1

...      j=j+1

...   i=i+1

Achten Sie unbedingt auf die richtigen Einrückungen.


next up previous contents index 6163656769
Next: 3.4 Ergänzungen zu Schleifen Up: 3.3 Schleifen Previous: 3.3.1 Die endliche Schleife:   Contents   Index
Heiko Schroeder 2003-03-19