www.mikrocontroller.net

Forum: Compiler & IDEs (else) if


Autor: hORST (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
 {

 }

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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");
 }

Autor: hORST (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke.... ich war einfach zu faul, mal drüber nachzudenken.. :-(

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.