MudGuard schrieb am 07.November.2005, 13:22:10 in der Kategorie web.coding
if (Ausdruck == 1)
> bla
> elseif (Ausdruck == 2)
> blabla
> ...
>
if (x+y+sin(z) > 1)
bla
elseif (x+y+sin(z) >0.7)
blabla
elseif (x+y+sin(z) > 0)
blablabla
abgearbeitet wird, wird so lange der Ausdruck immer wieder ausgewertet, bis eines der ifs true ergibt.
Es wird also, wenn x+y+sin(z) z.B. -1 ergibt, in obigem Beispiel 3 mal der sinus berechnet und 3 mal die drei Werte aufsummiert.
Klar, wenn das Ergebnis z.B. 0.9 ist, wird nur 2mal gerechnet, da ja bereits das 2. if zuschlägt - oder bei 1.1 nur 1mal, da das erste if zuschlägt.
Bei switch wird aber IMMER nur einmal der Ausdruck ausgewertet, egal, welcher case-Fall eintritt.