Hi worin besteht eigentlich der Unterschied zu 2mal if und if, else if? Also diese beiden Varianten: if (i==1) { } if (i==2) { } else { } ---------------------- if (i==1) { } else if (i==2) { } else { }
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.
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"); }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.