Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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)