While-Schleifen in Octave

In dieser Lektion erläutere ich Ihnen, wie Sie eine While-Schleife in Octave erstellen können.

Doch was ist überhaupt eine While-Schleife? Es ist eine Schleifenstruktur, die es Ihnen erlaubt, eine Gruppe von Anweisungen immer wieder auszuführen (sprich, durch Iterationen), bis eine gewisse logische Bedingung erfüllt ist.

Vor der Durchführung der Anweisungen prüft die While-Schleife zunächst eine initiale logische Bedingung.

Die Schleife bleibt aktiv, bis diese initiale Bedingung nicht länger erfüllt ist, dann endet die Schleife.

while Bedingung
block von Anweisungen
endwhile

Ist die initiale Bedingung von Beginn an nicht erfüllt, startet die While-Schleife erst gar keine Iteration.

Die While-Schleife gilt als unbestimmte Schleife, da Sie die Anzahl der Durchläufe im Vorhinein möglicherweise nicht kennen.

Im Gegensatz zu anderen Programmiersprachen, wie etwa Java oder C, müssen Sie den Code bei der While-Schleife in einigen Sprachen nicht zwischen geschweiften Klammern setzen. Wichtig ist aber zu verstehen, dass auch Einrückungen, wie in Python, nicht notwendig sind. Um den Code besser lesbar zu machen, empfehle ich jedoch, die Anweisungen etwas rechts von der While-Anweisung zu positionieren.

Als Beispiel wollen wir einen praktischen Fall betrachten, bei dem die Schleife die Quadrate von den Zahlen 1 bis 9 berechnet.

x=1;
while x<10
disp(x**2);
x=x+1;
endwhile

Die ausgegebenen Ergebnisse sind:

1
4
9
16
25
36
49
64
81

In diesem Fall durchläuft die While-Schleife einen festen Zyklus, weil Sie die Anzahl der Durchläufe schon vorher wissen.

Dies ist jedoch nicht immer der Fall. Die While-Schleife kann auch eine unbekannte Anzahl an Durchläufen im Vorfeld absolvieren.

Die Gefahr einer Endlosschleife

Beim Programmieren einer Schleife sollte man immer das Risiko einer Endlosschleife im Auge behalten.

Eine Endlosschleife entsteht, wenn die Anzahl der Durchläufe unbekannt ist und die Schleife unbegrenzt weiterläuft. Dies kann dazu führen, dass das Programm einfriert und es sogar zu Systemabstürzen kommt.

Um dies zu verhindern, empfiehlt es sich immer, eine Zwangsausstiegsbedingung nach einer bestimmten maximalen Anzahl von Durchläufen hinzuzufügen.

Nehmen wir als Beispiel folgendes Skript, das eine Zufallszahl zwischen 1 und 100 generiert und den Nutzer bittet, diese zu erraten.

number=randi(100);
x=0;
while x!=number
x = input("Welche Zahl habe ich gezogen? ")
if (x!=number)
disp("Leider falsch")
else
disp("Richtig geraten!")
break;
endif
endwhile

Auf den ersten Blick scheint dies eine simple Schleife zu sein, die endet, sobald der Nutzer die Zahl errät.

Wenn jedoch der Nutzer die Zahl nicht errät, wird die Schleife endlos laufen und somit zu einer Endlosschleife führen.

Um dies zu vermeiden, müssen wir eine maximale Anzahl von Durchläufen in der Schleife festlegen.

Das erreichen wir, indem wir eine Zählvariable, t, einführen, die nach jedem Durchlauf um eins erhöht wird.

Wenn t die maximale Anzahl von Durchläufen erreicht, endet die Schleife, selbst wenn der Nutzer die Zahl noch nicht erraten hat.

number=randi(100);
x=0;
t=0;
while x!=number
x = input("Welche Zahl habe ich gezogen? ")
if (x!=number)
disp("Leider falsch")
else
disp("Richtig geraten!")
break;
endif
t=t+1
if (t==10)
disp("Sie haben leider zu viele Versuche benötigt.")
break;
endif

endwhile

Mit dieser Bedingung stellen wir sicher, dass die Schleife nach einer angemessenen Anzahl von Durchläufen endet. Das verhindert, dass das Programm einfriert und minimiert das Risiko von Systemabstürzen.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Schleifen Octave