SmileMan's Blogger

19Nov/110

Verzweigungen, oder: if-then-else

Verzweigungen

Als Verzweigungen (auch Kontrollstrukturen genannt) kennt PHP das "if-else"-Konstrukt und das "switch".

if

Verzweigungen kennen wir auch im täglichen Leben: Angenommen sie wollen von Dingelsstadt nach Hintertupfingen fahren, dann machen Sie zum Beispiel vorher folgenden Plan: Wenn bis Schönstadt wenig Verkehr ist, wollen Sie weiterhin über die Autobahn fahren, ansonsten würden Sie einen Schleichweg über Bundes- und Landstrßen nehmen.
Also

if (nicht viel Verkehr bis Schönstadt)
weiter über Autobahn bis Hintertupfingen
else
weiter über Bundes- und Landstraßen bis Hintertupfingen

Beim Programmieren könnte man sich zum Beispiel folgende einfache Programmieraufgabe vorstellen. Ein Kunde erhält von einer Firma, wenn er für mindestens 10.000,- Euro im Jahr bestellt hat einen Sonderrabatt von 3%, wenn er unter  10.000,- bleibt nur von 2 %.
Nehmen wir an, dass der Umsatz in der Variablen $Umsatz gespeichert ist:

if ($Umsatz >= 10000) {
$Sonderrabatt = $Umsatz * 0.03;
} else {
$Sonderrabatt = $Umsatz * 0.02;
}

In der Variablen $Sonderrabatt steht nach der Ausführung der if-Anweisung der Betrag des Sonderrabattes.
Die geschweiften Klammern sind in obigem Beispiel (jeweils nur eine Anweisung) nicht notwendig, aber es gehört zu einem guten Stil, wenn man sie auch in solchen Fällen benutzt. Damit kann man möglichen Fehlern bei Erweiterungen eines Programmes vorbeugen.

Im folgenden, vielleicht etwas realistischeren, Beispiel lernen wir "elseif" kennen.

Ein Vertreter erhält in Abhängigkeit seines Umsatzes eine Provision und zwar:

Umsatz Provisionsbetrag bzw. Prozentsatz
kleiner 20000,- € 2.000,- € (Fixum)
20.000,- bis 50.000,- € 12 %
50.000,- bis 100.000,- € 14 %
ab 100.000,- € 15 %

In PHP sieht das wie folgt aus:

if ($Umsatz < 20000) {
$Provision = 2000;
} else if ($Umsatz  < 50000) {
$Provision = $Umsatz * 0.12;
}else if ($Umsatz  < 100000) {
$Provision = $Umsatz * 0.14;
}else {
$Provision = $Umsatz * 0.15;
}

Statt dem obigen "else if" gibt es in PHP auch die Möglichkeit "elseif" zu schreiben, allerdings nicht in Fällen, wie dem obigen.

switch

Eine weitere Möglichkeit der Verzweigung in PHP bietet die switch-Anweisung. Sie ist gleichbedeutend mit einer Hintereinanderschaltung von if-Anweisungen mit gleichem Parameter.
Die switch-Anweisung ersetzt also if-Konstrukte der folgenden Art:

if ($Variable == "value1") {
# Anweisungen
} elseif ($Variable == "value2") {
# Anweisungen
} elseif ($Variable == "value3") {
# Anweisungen
} else {
# Anweisungen
}

Obigen Programmteil kann man mit dem switch-statement etwas einfacher und übersichtlicher formulieren:

switch($Variable) {
   case "value1":
# Anweisungen
break;
   case "value2":
# Anweisungen
break;

   case "value3":
# Anweisungen
break;
default:
# Anweisungen
break;
}
EasyFreeAds Blog News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

veröffentlicht unter: PHP Kommentar schreiben
Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Leave a comment

Noch keine Trackbacks.