(else) if

Gast #410989
Lesenswert?

Englisch müsste man können...;-)

Im ersten Fall wird abgefragt, ob i 1 ist. Ist das der Fall, wird das
in der Klammer darunter ausgeführt. Anschließend wird (egal was die
erste Abfrage ergeben hat) abgefragt, ob i 2 ist. Ist das der Fall,
dann wird das was in der dazugehörigen Klammer steht, ausgeführt. Wenn
i nicht 2 ist (und nur dann), wird das gemacht, was in der Klammer
hinter dem else steht.

In der zweiten Version wird, wenn i 1 ist, die zweite Abfrage (also ob
i 2 ist) gar nicht mehr durchgeführt (was auch in vielen Fällen
sinnvoll ist, da dann ja bereits vorher festgestellt wurde, dass i 1
ist und demzufolge nicht gleichzeitig 2 sein kann, außer, es wurde
innerhalb des if(i == 1)-Blockes verändert!).

Eine mit else (if) eingeleitete Abfrage wird nur dann ausgeführt,
wenn die vorhergehende(n) Abfrage(n) nicht zutrafen! Das spart i.d.R.
Rechenzeit, da keine unsinnigen Abfragen gemacht werden müssen, wenn
schon vorher klar ist, dass diese eh nicht zutreffen.
Gast #410990
Lesenswert?

if (i==1)
 {
    i = 2;
 }
if (i==2)
 {
    printf("Wird ausgeführt");
 }
else
 {
    printf(" i ist JETZT nicht 2");
 }
----------------------------------------------
if (i==1)
 {
    i = 2;
 }
else if (i==2)
 {
    printf("Wird nicht ausgeführt");
 }
else
 {
    printf(" i ist weder 1 noch 2");
 }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren