Zählschleifen
Aus ProgrammingWiki
Diese Beispiele sind z.T. dem Brückenkurs Webapps der HS Zittau/Görlitz entnommen.
Das wiederholte Aufschreiben von Code ist sehr mühsam. Außerdem sind die so entstandenen Programme nicht sehr flexibel.
Syntax
Eine übliche allgemeine Notation einer for-Schleife sieht z.B. wie folgt aus:
for( var i = startwert; i < obergrenze; i++) { ... }
Anstelle von ... werden die Anweisungen eingesetzt, die wiederholt werden sollen.
Die Anweisung i++ ist eine Abkürzung für die Anweisung i=i+1.
Eine for-Schleife durchläuft mehrere Iterationen. In jeder Iteration werden alle Anweisungen zwischen den Klammern {...} ausgeführt.
Für das oben gezeigte Muster gilt:
- Vor der ersten Iteration erhält i den Wert startwert. Das ist die Anfangszuweisung.
- Nach der Iteration wird der Wert von i um 1 erhöht (i++). Das ist die Wiederholungszuweisung.
- Es wird geprüft, ob die Bedingung i<obergrenze erfüllt ist. Das ist die Wiederholungsbedingung.
- Wenn die Wiederholungsbedingung erfüllt ist, wird eine weitere Iteration durchgeführt.
- Die Schritte 2 bis 4 werden wiederholt, bis die Wiederholungsbedingung nicht mehr erfüllt ist. In diesem Fall werden keine weiteren Iterationen durchgeführt.
Beispiel:
Für die for-Schleife gibt es verschiedene Variationen:
- anstelle von i andere Variablennamen einsetzen
- für startwert und obergrenze beliebige Werte einsetzen.
- Wiederholungszuweisung ändern; Beispiele:
- i=i+2 bedeutet: i wird nach jeder Iteration um 2 erhöht.
- i-- oder i=i-1 bedeutet: i wird nach jeder Iteration um 1 erniedrigt.
- Wiederholungsbedingung ändern: statt i<5 z.B. i>5 schreiben
Beispiele
Andere Wiederholungszuweisung (i=i+5):
Andere Wiederholungsbedingung (i>=0)
Aufgaben
Berechnung mehrerer Quadratzahlen
Es sollen die ersten 5 (10, 20, ...), also beliebigen Quadratzahlen in einer Funktion QZ_n berechnet und ausgegeben werden.
Berechnung beliebiger Anzahl ausgewählter Quadratzahlen
Verändere Dein Programm nun so, dass die Quadratzahlen von bis in einer Funktion QZ_nm berechnet und ausgegeben werden.