Archiv
Ansicht:   
Suche   erweiterte Suche

Nachricht aus dem Archiv

MudGuard schrieb am 07.November.2005, 13:22:10 in der Kategorie web.coding

VBA: Auswertung bei If

> das ist mir erst jetzt aufgefallen:
>
> > im Gegensatz dazu wird bei
>

if (Ausdruck == 1)
> bla
> elseif (Ausdruck == 2)
> blabla
> ...
> 


> > der Ausdruck bei jedem if erneut ausgewertet.
> Stimmt das wirklich so ganz?

Natürlich stimmt das.

Sei Ausdruck etwas komplizierter, z.B.
x+y+sin(z)

Wenn jetzt

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.

Archiv
Ansicht:   
Suche   erweiterte Suche
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz