Grundlagen der Programmierung: Basiswissen

Eine While-Schleife programmieren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Eine while-Schleife wird so lange ausgeführt, bis eine zuvor definierte Bedingung eingetreten ist. Dabei wird der Wert der Bedingung, auf welche die Schleife prüft, bei jedem Durchlauf verändert.

Transkript

Ich will hier jetzt eine einfache Schleife programmieren. Aber bevor ich das tue, habe ich eine kurze Frage an Sie. Und das ist kein Trick, das ist keine Fangfrage. Denken Sie bitte nur kurz nach, und geben Sie die erste Antwort, die Ihnen in den Sinn kommt. Die Frage lautet: Sie möchten einen Zaun bauen, 50m breit, und alle 10m brauchen Sie einen Pfosten. Wie viele Pfosten brauchen Sie insgesamt? Haben Sie die Antwort? Gut, aber schauen wir uns zunächst einmal den Code an. Ich zeige Ihnen jetzt hier, wie Sie eine while-Schleife in JavaScript programmieren. Beginnen möchte ich mit einer Variablen, die nenne ich "Menge", und setze ich auf den Wert null. Mit der möchten wir später arbeiten. Wenn wir so eine while-Schleife programmieren, dann brauchen wir eine Zahl, die wir hochzählen, und das nennt sich Index. Also "Erzeuge den Index". Der Index, das ist nichts Anderes als eine ganz normale Variable, die wird häufig mit dem Buchstaben "i" bezeichnet. Sie können aber auch jeden anderen Variablennamen dafür verwenden. Ich sage, der Index soll bei eins anfangen. Als nächstes müssen wir dann diese Bedingung überprüfen, "Überprüfe die Bedingung", und wir müssen dafür sorgen, dass unser Index erhöht wird, also durchgezählt wird, " Erhöhe den Index". Schauen wir mal, wie diese Bedingung überprüft werden kann. Wir haben da, ähnlich wie bei if-Statements, oder auch bei switch-Statements, zunächst einmal das Schlüsselwort "while". Und dann haben wir hinten die runden Klammern, und wir schreiben als Nächstes die geschweiften Klammern. Damit ich nicht vergesse, die geschweifte Klammer zu schließen, schließe ich sie sofort und mache ein paar Leerzeilen hinein. Und die Musik, die spielt jetzt eigentlich hier, innerhalb dieser Bedingung. Ich überprüfe, ob mein Index einen gewissen Wert hat. Das heißt, dieses Statement muss, genauso wie bei if-Bedingungen, wahr oder falsch sein. Also ist der Index kleiner als zehn? Wenn das der Fall ist, dann führe diesen Code hier innerhalb der geschweiften Klammern aus, ansonsten verlasse diese Schleife. Ich nehme hier die "Menge", und möchte zu dieser "Menge" die 100 dazuaddieren. Ich könnte es mir natürlich einfacher machen und "+=" schreiben, dann würde ich mir ein bisschen Tipparbeit ersparen. Wichtig ist, wenn ich diesen Index erhöhe, dann muss ich das natürlich innerhalb dieser Schleife machen, denn sonst wird diese Bedingung, dass "i<10" sich ja niemals verändern. Also schreibe ich das hier rein, erhöhe den Index, und ich sage "i++". Ich könnte auch schreiben "i=i+1", aber ich möchte es etwas übersichtlicher und schöner haben, "i++;", und damit erhöhe ich jetzt den Index. Jetzt ist die Schleife hier bei dieser geschweiften Klammer vorbei, und wir möchten uns jetzt in guter alter Tradition das Ergebnis mal anschauen mit meinem Alert-Befehl Und da schreibe ich "Die Menge ist: ", dann schreibe ich das Plus-Zeichen und schreibe eben hier meine "Menge" dazu. Die Klammer mache ich zu, Strich-Punkt, ich speichere das Ganze ab. Und jetzt möchte ich mal anschauen, was hier dabei herauskommt. Ich klicke auf meinen Container, und habe ich hier: "Die Menge ist: 900". Vielleicht haben Sie jetzt überlegt: zehnmal geht der da durch, 10 mal 100 ist doch 1000, warum kommt denn hier die 900 raus? Das ist ein sehr häufiger Fehler bei der Programmierung grundsätzlich, die wir hier machen. Schauen wir uns das mal der Reihe nach an. Zunächst einmal sage ich, "i" soll eins sein, und dann gehe ich hier in die Schleife rein. 1 ist kleiner als 10, also wird die Menge von 0 auf 100 erhöht. Dann bin ich bei 2, die Menge wird von 100 auf 200 erhöht, auf 3, bei 300. Wenn ich bei 9 bin, ist die Menge auch bei 900. Und jetzt bin ich hier: 9+1=10, und damit ist diese Bedingung hier nicht mehr wahr. Das heißt, die letzte Schleife, der letzte Durchlauf, die letzte Iteration, wie man dazu auch sagt, die ist ja schon gar keine wahre Bedingung mehr, das heißt der letzte Durchlauf wird ausgelassen und mit 900 wird das Ganze hier ausgegeben. Wie kann ich das ändern? Genauso wie bei if-Statements auch, könnte ich schreiben "while(i<=10)". Dann wird die letzte Schleife auch noch durchlaufen, und wir kommen auf 1000. Eine andere Möglichkeit besteht darin, dass ich den Index nicht bei eins anfangen lasse zu zählen, sondern bei null, so wie der Computer häufig das macht, dass er bei null erst anfängt zu zählen. Wenn ich das Ganze jetzt abspeichere, dann werde ich auf 1100 kommen, weil ich beide Möglichkeiten hier gerade umgesetzt habe. Das heißt, wenn ich am Ende genau auf 1000 kommen möchte, kann ich also entweder bei 0 anfangen zu zählen, oder hier mit dem Kleiner-Gleich-Zeichen arbeiten. Das ist eine sehr häufige Quelle von Fehlern. Also wenn Sie Schleifen haben, dann müssen Sie immer überlegen: wo fange ich an zu zählen, bei null oder bei eins? Und wie viele Schleifen gehe ich durch? Und dieser Fehler, der ist so bekannt, dass er sogar einen eigenen Namen verdient hat. Dieser Fehler heißt Zaunpfostenfehler. Und die meisten Programmiererinnen und Programmierer bezeichnen ihn auch im Deutschen als den Fencepost-Error, also der verflixte Zaunpfosten. Meine Frage von vorhin war: Sie haben ein 50m breites Gartenstück, und Sie möchten alle 10m einen Zaunpfosten in der Erde verankern, wie viele Pfosten brauchen Sie? Manche sagen: "50/10=5, ich brauche 5 Pfosten!" Manche überlegen und sagen: "Ich brauche am Anfang und Ende einen zusätzlichen Pfosten", und Sie kommen auf sieben. Beides ist falsch. Die richtige Antwort, wie viele Pfosten ich brauche, lautet: sechs Pfosten. Diese Frage hat ja nichts mit programmieren zu tun, einen Gartenzaun zu bauen, sondern das ist an sich für uns eine sehr schwierig sich vorzustellende Aufgabe. Und wenn Sie daran denken, dass wir beim Programmieren manchmal Schleifen haben, die nicht über 50m gehen, sondern ich brauche 370 Schleifen bspw., und ich möchte jede Schleife, oder jeden Schritt dieser Schleife nur 27 Schritte weit gehen, dann wird es sehr schwierig, hier noch den Überblick zu behalten. Aber die meisten Programmiererinnen und Programmierer haben damit auch Probleme und müssen sich ganz genau überlegen: wo beginne ich eine Schleife, wie viele Schritte mache ich, und wie viele werden es insgesamt werden? Das heißt, diese richtige Zählweise von Schleifen, das machen viele oftmals auch falsch, und dieser Fehler hat einen extra Namen auch, der nennt sich im Deutschen Um-Eins-daneben-Fehler. Auch hier verwenden die meisten das englische Original und nennen das Ganze Off-By-One-Error. Das heißt, oftmals liegt man in solchen Schleifen um eins zu hoch, oder um um eins zu niedrig. Wenn Ihnen das Probleme bereiten sollte, sind Sie in guter Gesellschaft.

Grundlagen der Programmierung: Basiswissen

Steigen Sie ein in die Welt der Computerprogrammierung und verschaffen Sie sich das Grundwissen, um schon bald eigene Lösungen und Anwendungen zu schreiben.

5 Std. 38 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!