PMG1920/Verzweigungen
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
<font color = grey>Einige Beispiele sind dem ''Brückenkurs Webapps der HS Zittau/Görlitz entnommen.''</font>
== Syntax ==
Oft sollen bestimmten Anweisungen nur ausgeführt werden, wenn eine bestimmte Bedingung erfüllt ist.
Eine solche Verzweigung (Alternative) ist folgendermaßen in JavaScript aufgebaut:
if(<Bedingung>){
...
}else{
...
}
Zwischen die geschweiften Klammern werden ein oder mehrere Anweisungen geschrieben, die ausgeführt werden sollen, wenn die <Bedingung> true (also ''wahr'') ist. Es handelt sich um den sogenannten '''If-Block'''.
Zwischen die geschweiften Klammern des '''Else-Blocks''' werden ein oder mehrere Anweisungen geschrieben, die ausgeführt werden sollen, wenn die <Bedingung> false (also ''unwahr'') ergibt.
''Beispiel''
Das Programm gibt den Text "Es ist kalt." aus, wenn die Temperatur <= 15 ist. Ändere den Wert der Variable "temperatur", um das Programm zu testen.
<code id="5db5f2f521ad0">
var temperatur = 20;
</code>
<run id="5db5f2f5221eb">
if(temperatur > 15){
console.log("Es ist warm.");
}else{
console.log("Es ist kalt.");
}
</run>
Gelegentlich gibt es keine Anweisungen für den ELSE-Block, also wenn die <Bedingung> nicht erfüllt ist. Dann wird dieser Block weggelassen.
if(<Bedingung>){
...
}
== Bedingungen ==
Die <Bedingung> muss ein logischer Ausdruck sein, der wahr oder falsch (d.h. true oder false) ergibt.
'''Beispiele für logische Ausdrücke'''
Ändere in den folgenden Beispielen die Werte der Variablen x und y, um die Programme zu testen.
''x > y''
<code id="5db5f2f521c7e">
var x = 6;
var y = 7;
</code>
<run id="5db5f2f522274">
if(x > y){
console.log("x ist größer als y");
}else{
console.log("x ist kleiner als y");
}
</run>
''x < y''
<code id="5db5f2f521d09">
var x = 6;
var y = 7;
</code>
<run id="5db5f2f5222ff">
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="5db5f2f521d7d">
var a = 0;
var b = 10;
var x = 3;
</code>
<run id="5db5f2f522374">
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="5db5f2f521def">
var x = 6;
var y = 6;
</code>
<run id="5db5f2f5223e0">
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="5db5f2f521e89">
var x = 6;
var y = 7;
</code>
<run id="5db5f2f52246c">
if(x != y){
console.log("x ist ungleich y");
}else{
console.log("x ist gleich y");
}
</run>
== Aufgaben ==
'''1. Erstelle eine If-Anweisung:''' <br>
Wenn der Wert von x > 0 ist, soll der Text "die Zahl ist positiv" ausgegeben werden. Ansonsten soll der Text "die Zahl ist negativ" ausgegeben werden.
<code id="5db5f2f521efa">
var x = 5;
</code>
<run id="5db5f2f5224db">
</run>
'''2. Erstelle eine If-Anweisung:''' <br>
Wenn das Alter größer gleich 18 ist, soll der Text "Die Person ist volljährig." ausgegeben werden. Ansonsten soll der Text "Die Person ist minderjährig" ausgegeben werden.
<code id="5db5f2f521f67">
var alter = 25;
</code>
<run id="5db5f2f522548">
</run>
'''3. Erstelle eine Funktion zur Berechnung der Nullstellen einer quadratischen Funktion:'''
Diese Funktion ''Nullstelle'' soll
# entscheiden, ob eine quadratische Funktion keine, genau eine oder genau zwei Nullstellen besitzt
# die Werte dieser Nullstellen ausgeben
<u>vorher</u> Algorithmus formulieren und Struktogramm entwerfen
<code id="5db5f800cd045">
/* function Nullstelle(p,q){
var D = p*p/4-q;
if (D>0) {
var x1 = -p/2 + Math.sqrt(D);
var x2 = -p/2 - Math.sqrt(D);
console.log(x1);
console.log(x2);
} // Ende Ja-Zweig
else if (D<0) {
console.log("keine Nst.");
}
else {
x1 = -p/2;
console.log(x1);
}
}
*/
function Nullstelle(p,q){
var D = p*p/4-q;
if (D<0) { console.log("keine Nst.")
}
else if (D == 0) { // hier lag der Fehler :-( Es muss D == 0 heißen und nicht D = 0
console.log("eine Nst."); // siehe weiter oben auf dieser Seite !
var x = -p/2;
console.log(x);
}
else {
console.log("zwei Nst.");
var x1 = -p/2 + Math.sqrt(D);
var x2 = -p/2 - Math.sqrt(D);
console.log(x1);
console.log(x2);
}
}
</code>
<run id="5db5f800cd0ea">
Nullstelle(2,4)</run>