PMG2022/Grundstrukturen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

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

Abfolge von Anweisungen



== 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:

 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="604880cd22beb">
function print(){

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

    console.log(i);
  }

}
</code>
<run id="604880cd22c52">
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 ===

<font color = grey>entspricht der WHILE ... DO Schleife in Delphi</font>

 while (bedingung) {
     anweisungen;
 }

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

<run id="604881ac6a18e"></run>



=== Schleife mit nachgestelltem Test ===

<font color = grey>entspricht der REPEAT ... UNTIL Schleife in Delphi</font>

 do {
     anweisungen;
 } while (bedingung);


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

<run id="604881ac6a1e9"></run>


== Bedingungen ==

Oft sollen bestimmten Anweisungen nur ausgeführt werden, wenn eine bestimmte Bedingung erfüllt ist. 

'''Aufbau von If-Anweisungen'''


 if(<Bedingung>){
    ...
 }

Zwischen die geschweiften Klammern werden ein oder mehrere Anweisungen geschrieben, die ausgeführt werden sollen, wenn die <Bedingung> wahr ist. Es handelt sich um den sogenannten '''If-Block'''.

Natürlich können auch mehrere Bedingungen nacheinander geschrieben werden:

 if(<Bedingung1>){
    ...
 }
 
 if(<Bedingung2>){
    ...
 }

Eine If-Anweisung kann auch einen Sonst-Block (oder '''Else-Block''') besitzen:

 if(<Bedingung>){
    ...
 }else{
    ...
 }

Zwischen die geschweiften Klammern des Else-Blocks werden ein oder mehrere Anweisungen geschrieben, die ausgeführt werden sollen, wenn die <Bedingung> false ergibt.


''Beispiel''

Das Programm gibt den Text "Es ist kalt." aus, wenn die Temperatur <= 15 ist. Ändern Sie den Wert der Variable "temperatur", um das Programm zu testen!
<code id="6048823b52aa8">
var temperatur = 20;
</code>
<run id="6048823b52d05">
if(temperatur > 15){
   
   console.log("Es ist warm.");

}else{

  console.log("Es ist kalt.");
}
</run>


'''Aufbau von Bedingungen'''

Die <Bedingung> muss ein logischer Ausdruck sein, der wahr oder falsch (d.h. true oder false) ergibt.

'''Beispiele für logische Ausdrücke'''

Ändern Sie in den folgenden Beispielen die Werte der Variablen x und y, um die Programme zu testen!

''x > y''
<code id="6048823b52b16">
var x = 6;
var y = 7;
</code>
<run id="6048823b52d5d">
if(x > y){
  console.log("x ist größer als y");
}else{
  console.log("x ist kleiner als y");
}
</run>


''x < y''
<code id="6048823b52b81">
var x = 6;
var y = 7;
</code>
<run id="6048823b52db5">
if(x < y){
  console.log("x ist kleiner als y");
}else{
  console.log("x ist größer als y");
}
</run>

Außerdem können die Operatoren >= (größer gleich) sowie <= (kleiner gleich) verwendet werden.


''x>=a && x<=b'' (Test, ob x zwischen den Werten a und b liegt)
<code id="6048823b52be2">
var a = 0;
var b = 10;

var x = 3;
</code>
<run id="6048823b52e0c">
if(x>=a && x<=b){
 console.log("x liegt zwischen a und b");
}else{
 console.log("x liegt außerhalb von a und b");
}
</run>


''x == y'' (Test, ob x und y den gleichen Wert besitzen)
<code id="6048823b52c3d">
var x = 6;
var y = 6;
</code>
<run id="6048823b52e46">
if(x == y){
  console.log("x ist gleich y");
}else{
  console.log("x ist ungleich y");
}
</run>


''x != y'' (Test, ob x und y ungleiche Werte besitzen)
<code id="6048823b52c97">
var x = 6;
var y = 7;
</code>
<run id="6048823b52eb9">
if(x != y){
  console.log("x ist ungleich y");
}else{
  console.log("x ist gleich y");
}
</run>