Wow. Eine Antwort, die ich auf Anhieb verstehe zusammen mit einem anschaulichen und viel sagenden Beispiel.
Vielen Dank dafür!
Gruß!
eulerscheZahl
else heißt soviel wie "sonst", das heißt, wenn das if nicht erfüllt ist, springt das Programm direkt zum else. else if heißt "sonst wenn", hier braucht man dann wieder eine Bedingung (wenn was erfüllt ist).
1 Fall mit zwei Bedingungen:
du kannst die Bedingungen zu einer verbinden:
bed1 && bed2 //&& heißt und, das heißt beide Bedingungen müssen erfüllt sein
bed1 || bed2 //|| heißt oder, es reicht, wenn eine Bedingung erfüllt ist
Bsp.:
code:
1:
2:
3:
4:
5:
6:
if (zahl >= 10 && zahl <= 20)
printf("die Zahl liegt zwischen 10 und 20");
else if (zahl < 10)
printf("die Zahl ist kleiner als 10");
else //keine der obigen Bedingungen erfüllt
printf("die Zahl ist größer als 20");
Markus
Achso danke.
Hmm. Wenn ich das hier sehe:
code:
1:
2:
3:
4:
5:
6:
if (Bedingung1)
Anweisung1
else if (Bedingung2)
Anweisung 2
else //hier keine Bedingung
Anweisung 3
Bedeutet dann "else if" soviel wie "und wenn" / "und falls"?
Warum darf ich nach else dann keine Bedingung schreiben? Weiß der Compiler etwa automatisch, was der andere Fall ist? Kann er sich das zusammenreimen?
Wie mache ich es dann, wenn ich 3 Fälle zu unterscheiden haben (von denen ein Fall z.B. 2 Bedingungen hat)?
Gruß
eulerscheZahl
Aber dann muss die Bedingung bei else ganz weg:
code:
1:
2:
3:
4:
5:
6:
if (Bedingung1)
Anweisung1
else if (Bedingung2)
Anweisung 2
else //hier keine Bedingung
Anweisung 3
Wenn du alles mit else if machst, kann es je nach Wahl der Bedingungen sein, dass gar nichts ausgeführt wird.
Markus
Tausend Dank! Es klappt denke ich
Eigentlich komisch: In unserem Skript steht, wenn man so eine Fallunterscheidung in 2 Fälle hat macht man:
if(...)
...;
else(...)
...;
Und wenn es n Fälle sind soll man das machen:
if(...)
...;
(n-2) mal else if(...)
...;
else(...)
...;
Also wenn es mehr als 2 Fälle sind immer zunächst "if" und dann den Rest nur "else if"?
eulerscheZahl
Du hast folgende Fehler:
Zeile 21: else if
Zeile 6: du verwendest a und b zum Berechnen von Dis, ohne a und b vorher eingelesen zu haben
Zeile 19: " in printf an der falschen Stelle, führt bei mir zur Ausgabe Einzige Nullstelle bei 0.0000000
, -a/(2.)
Markus
RE: Wo ist der Fehler? :-(
Edit: Es geht um Programmiersprache C
Markus
Wo ist der Fehler? :-(
Meine Frage:
Hi!
Ich soll ein Programm schreiben welches die Nullstelle(n) von für vom Nutzer eingegebene angibt, falls existent.
Hier mein Quellcode:
Meine Ideen:
Zum einen versteh ich nicht, warum Code::Blocks in Zeile 22 eine ';' vor 'printf' erwartet...
Zum anderen, wenn ich z.B. , eingebe, kommt in der Konsole ein abstruses Ergebnis...