Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo, > > ich möchte doch von einem Fehler sprechen. Im Simulator springe ich tatsächlich auf den Befehl im else-Zweig. Ich habe jetzt den Code umformatiert: > > function func_test() > { > int a,b,c,d; > a=1; > b=1; > c=0; > d=-1; > if (a == 1) > { > d=0; > } > else > { > d=1; > } > } > > Jetzt steht in jeder Zeile ein Befehl oder eine Klammer. Ich lande trotzdem auf d=1 was mich eigentlich echt irriert. > > > Das liegt wahrscheinlich daran, daß die Funktion mit "}" endet, dies > > aber kein befehl ist, aber dennoch "return;" heißt. > > "}" kann aber im Simulator nicht markiert werden. So wird einfach > > der letzte Befehl vor Funktionsende markiert. > > Es wäre sauber wenn nach d=0 die Funktion verlassen würde. > > Gruss Klaus > > > > > Hallo KlaRa und Milif, > > > > Ich weiß nicht, was ihr habt, ich hab' grad das Proggie getestet, > > und es funzt so wie es soll. > > In d steht niemals eine 1 drin immer -1 oder 0. Das kann man ganz einfach > > prüfen, indem man d als Global definiert und überwacht. > > Was euch wahrscheinlich irretiert, ist, daß beim Einzelschritt > > der blaue Balken auch bei der else-Zeile stehen bleibt. > > Das liegt wahrscheinlich daran, daß die Funktion mit "}" endet, dies > > aber kein befehl ist, aber dennoch "return;" heißt. > > "}" kann aber im Simulator nicht markiert werden. So wird einfach > > der letzte Befehl vor Funktionsende markiert. > > > > Das könnt Ihr ganz einfach so testen: > > int d; > > <font face="courier new" size=2>function func_test() > > { > > int a,b,c/*,d*/; > > a=1; > > b=1; > > c=0; > > d=-1; > > if (a == 1) > > { d=0; } > > else > > { d=1; > > a=0; }//Hier bleibt beim Einzelschritt der Balken immer stehen, > > //obwohl diese Zeile nicht ausgeführt wird :-) > > } > > > > thread main > > { > > func_test(); > > }</font> > > > > MfG André H. > > > > > > > Hallo, > > > > > > ich habe Dein Programm so eben getestet. Bei mir stellt sich der Fehler genauso wie beschrieben ein. > > > Allerdings vermute ich ganz stark, es ist nur ein Fehler des Simulators. Ich habe nach dem If-Statement mal vor dem Ende der Funktion ein Return eingebaut. Man sieht das der else-Zweig, wie er hier soll, dabei nicht ausgeführt wird. > > > > > > Gruss Klaus > > > > > > > > > > /*Habe heute lange am Problem mit verschachtelten > > > > "if u. else"-Bedingungen am Simulator getestet(siehe auch folgendes Testprogr.) > > > > Erst beim Einfügen einer Dummy-Operation (z.B. c=0;) nach > > > > der else-Klammer wurde die if-Abfrage korrekt durchlaufen, sonst immer der if UND der else -Zweig. > > > > Ist das Prob. bekannt oder mache ich was falsch ? > > > > Mfg Milf. > > > > */ > > > > > > > > > > > > function func_test() > > > > { > > > > int a,b,c,d; > > > > a=1; > > > > b=1; > > > > c=0; > > > > d=-1; > > > > if (a == 1) > > > > { d=0; } > > > > else > > > > { d=1; } > > > > > > > > //**c=0;//**<< nur wenn hier eine Zeile im Code eingefügt wird , > > > > //** erhält man das korrekte Ergebnis d=0, > > > > //** sonst wird trotz a==1 > > > > //** der else-Zweig auch durchlaufen > > > > }//** Ende der Function > > > > //******************** > > > > thread main > > > > { > > > > func_test(); > > > > }