5_JavaScript - Bedingungen prüfen
Übersichtlichkeit ist ein klarer Vorteil von JavaScript. So erlaubt JavaScript (im Gegensatz zur Geogebra-Umgebung) ein übersichtliches Abprüfen von Bedingungen. Dafür benutzt man eine "wenn-dann-Anweisung" ("if-else-Anweisung" bzw. "if-else if-...-else-Anweisung"):
if (Bedingung1) {
Anweisung1
} else if (Bedingung2) {
Anweisung2
} else {
Anweisung3}
Die entsprechenden Blöcke sind durch geschweifte Klammern { } getrennt.
Der Block else-if kann beliebig oft sinnvoll eingefügt, aber auch weggelassen werden.
Anmerkungen:
Der Befehl var a = ggbApplet.getValue("a"); holt sich den Wert der Zahl a aus dem GeoGebra-Applet und speichert ihn in der Skripting-Umgebung.
Diese Variable a hat im Beispiel oben nur zwei Werte (boolesche Werte), nämlich wahr|true (Kontrollkästchen aktiviert) und falsch|false (Kontrollkästchen nicht aktiviert).
Wenn-dann-Anweisung:
if (a==true) { // "Wenn der Wert von a wahr ist, dann ..."
alert("Das Kästchen ist aktiviert."); // "... dann gib den Satz aus."
}
else { //"Ansonsten - also wenn in diesem Fall der Wert von a nicht wahr (d.h. falsch) ist, dann ..."
alert("Das Kästchen ist nicht aktiviert."); // "... dann gib den Satz aus."
}
Je nachdem welche Bedingung wahr ist, wird der entsprechende Block aufgerufen und die Anweisung (hier: die Alert-Ausgabe) ausgeführt.
Wichtig dabei ist:
Für die Überprüfung einer Bedingung muss man Ausdrücke mit folgenden Operatoren (wie auch in der Geogebra-Umgebung) vergleichen:
== gleich
! nicht
!= Ungleichzeichen ("negiertes =")
> größer
>= größer gleich
< kleiner
<= kleiner gleich
Zwei Bedingungen verknüpft man (wie auch in der Geogebra-Umgebung) mit den Junktoren:
&& und
|| oder
Bemerkung:
Auch Schleifen (for- / do-while- / while-Schleifen) sind in JavaScript möglich. Sie erfüllen den Zweck, eine Anweisung oder eine Gruppe von Anweisungen solange auszuführen, bis eine bestimmte Bedingung erfüllt ist, oder nicht mehr erfüllt ist.
(https://wiki.selfhtml.org/wiki/JavaScript/Schleife#Schleifen_mit_.22for.22)
Auf dieses Programmkonstrukt wird in diesem Workshop nicht weiter eingegangen.