if else problem
-
Hallo,
bin neu hier und auch neu in Sachen C
hab ein problem zu if else anweisungen
laut meines codes solle es normalerweise gehn
hoffe ihr könnt mir helfen#include <stdio.h> #include <conio.h> #include <math.h> int main() { float wert1; float wert2; float erg; printf("Geben sie ein Wert an: "); scanf("%f",&wert1); printf("\nGeben sie ein weiteren Wert an: "); scanf("%f",&wert2); if (wert2 <= 0) printf("Fehlerwert 1"); printf("\npress any key to exit"); else { erg=wert1/wert2; printf("\n%f / %f = %f",wert1,wert2,erg); } }
er soll jetzt kontrollieren ob wert2 null ist. Wenn wert2 null is soll er das Programm schliesen, ansonsten soll er wert1 durch wert2 rechnen.
doch mein Compiler (LCC) mekert und meint "missing semicolon before '{' "
er erwartet also ein ; bei else. das is aber schwachsinn
was hab ich da jetzt flasch gemacht das das nicht geht.danke
-
if (wert2 <= 0)
printf("Fehlerwert 1");
printf("\npress any key to exit");da fehlen { und }
-
hmm is mir jetzt ganz neu das bei if solche zeichen gesetzt werden
davor hab ich schon ein anderes programm geschrieben das ging ohne { bei if
und auf der seite sind auch keine aufgelistet
nur bei else
-
Da kommt nach dem if auch nur ein Statement. Das ist dann eine Ausnahme der Regel. Bei mehreren Statements müssen Klammern gesetzt werden.
-
bbq-fish schrieb:
hmm is mir jetzt ganz neu das bei if solche zeichen gesetzt werden
davor hab ich schon ein anderes programm geschrieben das ging ohne { bei if
und auf der seite sind auch keine aufgelistet
nur bei elseDer Link steht nicht im Wiederspruch zu der Aussage von feigling. Es ist einfach so, dass die geschweiften Klammern einen Block definieren, dessen Anweisungen logisch zusammengehören. D.h. wenn du bei if(true) mehrere Anweisungen ausführen möchtest, setzt du diese in Klammern, damit der gesammte Block ausgeführt wird. Bei _einer einzigen_ Anweisung darfst du die geschweiften Klammern auch weglassen.
Gruß Caipi
-
ah
wunderbar danke jetzt geht alles