Re: if-else-Bedingung - Simulator fehlerhaft! Kategorie: Programmierung (von André H. - 10.11.2002 12:14) | |
Als Antwort auf Re: if-else-Bedingung - Simulator fehlerhaft! von KlaRa - 10.11.2002 11:59
| |
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; 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(); } 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(); > > } Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: Re: if-else-Bedingung - Simulator fehlerhaft! (von KlaRa - 10.11.2002 17:17) Re: if-else-Bedingung - Simulator fehlerhaft! (von André H. - 10.11.2002 17:43) Re: if-else-Bedingung - Simulator fehlerhaft! (von KlaRa - 10.11.2002 19:34) Re: if-else-Bedingung - Simulator fehlerhaft! (von André H. - 10.11.2002 20:37) Re: if-else-Bedingung - Simulator fehlerhaft! (von Milf - 10.11.2002 21:19) |