PMG2627 10/Grundstrukturen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Sequenz ==

Abfolge von Anweisungen[[Bild:Seq.png | 80px]]



== Zählschleife ==

Das wiederholte Aufschreiben von Code ist sehr mühsam. Außerdem sind die so entstandenen Programme nicht sehr flexibel. 

Eine übliche allgemeine Notation einer for-Schleife sieht z.B. wie folgt aus: [[Bild:Zaehl.png | 120px]]

 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:

<code id="6aa8e40a32147">
function print(){

  for(var i=0; i<5; i++){

    console.log(i);
  }

}
</code>
<run id="6aa8e40a325ec">
print();
</run>

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

== Schleifen mit Bedingungen ==


=== Schleife mit vorangestelltem Test ===

[[Bild:Vor.png | 200px]]

 while (bedingung) {
     anweisungen;
 }

 ''In den folgenden Beispielen wurde auf die Modularisierung verzichtet, der Programmcode also ohne "function" in die CodeBox geschrieben und ''
 ''ohne extra Aufruf in der RunBox ausgeführt.''

<code id="6aa8e40a3224e">
var x = 1; 
while (x < 5) {
    console.log ('Lauf ' + x );
    x = x + 1;
}
</code>

<run id="6aa8e40a326c8"></run>

=== Schleife mit nachgestelltem Test ===

[[Bild:Nach.png | 200px]]

 do {
     anweisungen;
 } while (bedingung);


<code id="6aa8e40a322db">
var zahl = 5;
var y = 0;
do {
   console.log(y + ' mal 3 ist ' + (3*y));
   y = y + 1;
} while (y < zahl);
</code>

<run id="6aa8e40a327eb"></run>