Guten Morgen, also ich habe folgendes Problem: Bei meiner IF-Schleife if((Rot_ST >= ROT_STROM_SOLL1) && (Rot_ST <= ROT_STROM_SOLL2)) { send_text("Dieser Text wieder unendlich mal ausgegeben"); } else{fehlerausgabe(ROT);} if((Gelb_ST >= GELB_STROM_SOLL1) && (Gelb_ST <= GELB_STROM_SOLL2)) { } else{fehlerausgabe(GELB);} vergleicht er die Werte und wenn die Bedingung zutrifft soll er in die nächste Schleife gehen aber das tut er nicht. Wenn die Bedingung zutrifft gibt er mir unendlich oft den Text der 1. Schleife aus. Kann mir jemand verraten wieso er das tut? Vielen Dank schonmal im Vorraus.
Deine Bedingungen sind wohl falsch. WENN rot_st GRÖßERGLEICH .. UND KLEINERGLEICH... Ich glaube, du musst statt dem AND (&&) ein OR (||) machen.
if / else ist keine Schleife. Schleifen werden mit for(), while() oder do{}while(); realisiert. Von allein springt das Programm mit Sicherheit nicht zurück zur if-Bedingung, ich vermute irgendein Problem in der send_text() - Routine, die einen Reset auslöst. Stacküberlauf, Pointerprobleme o.ä. Poste doch bitte mal den gesamten Code.
@Marvin: Ok du hast recht eigentlich ist es ne IF-Anweisung. @Kola: Im Grunde sag ich dem Programm nur das der Wert den er bekommt nicht unbedingt genau der selbe sein darf er darf sich +- um einen bestimmten Wert unterscheiden ohne das er in die Else Anweisung springt. Mein Problem ist halt nur obwohl die Bedingung zutrifft geht er nicht weiter und bleibt immer in der IF-Anweisung! Die Else-Anweisung wrid nicht aufgerufen! Den Text den ich da reingeschrieben habe habe ich nur zur visuellen bestätigung dort eingefügt damit ich sehe das er immer wieder die IF-Anweisung ausführt da meine Bildschirmausgabe so aussieht: Dieser Text wieder unendlich mal ausgegeben Dieser Text wieder unendlich mal ausgegeben Dieser Text wieder unendlich mal ausgegeben Dieser Text wieder unendlich mal ausgegeben u.s.w. Den Text Befehl kann ich aber auch weglassen da tut sich ebenfalls nichts!
> Mein Problem ist halt nur obwohl die Bedingung zutrifft geht er nicht > weiter und bleibt immer in der IF-Anweisung! Die Else-Anweisung wrid > nicht aufgerufen! Hä? Genau das soll er doch machen, wenn die Bedingung erfüllt ist. Also: 1.: Poste mal mehr von Deinem Code (ohne den wird hier niemand Dein Problem nachvollziehen können) 2.: Formuliere Deine Aussagen so, dass man sie auch nachvollziehen kann.
Hab das Probelm selbst schon behoben. Es lag daran das die IF-Anweisung in einer For Schleife ist und ich die laufvariable i (für die For-Schleife) nicht lokal sondern global deklariert habe! Trotzdem danke für die Kritik und die Lösungsvorschläge.
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.