if-Problem



  • Hi, ich hab mal wieder eine kleine Frage.
    Ich hab ein Programm geschrieben in der ich ohne weiters if-Anweisungen verschachtelt habe.
    Jetzt hab ich ein weiteres Programm geschrieben, wo auf einmal Fehler auftreten. Hier erst mal der Quellcode:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    if(x1 > 10)
        {
        if(x1d==1||x1d==5x1d==9||x1d==5x1d==13||x1d==17)
              {
    		c1 = x1;
    		c2 = x2;
    		v1 = y1;
    		v2 = y2;
    		x1 -= 25;
    		x2 -= 25;
    		Canvas->Brush->Color = clYellow;
    		Canvas->Ellipse(x1,y1,x2,y2);
    		Canvas->Brush->Color = clScrollBar;
    		Canvas->Ellipse(c1,v1,c2,v2);
    }
    }
    }
    

    Es kommt folgende Fehlermeldung:

    if statement missing)
    

    Und zwar genau hinter dem ersten Oder in der zweirten if-Anweisung.
    In C hab ich ein Ähnliches Beispiel gemacht, ohne Probleme!



  • So müsste es doch gehen oder?

    void __fastcall TForm1::Button1Click(TObject *Sender) 
    { 
    if(x1 > 10) 
        { 
        if(x1d==1||(x1d==9&&x1d==5x1d)||(x1d==13&&x1d==5x1d)||x1d==17) 
              { 
            c1 = x1; 
            c2 = x2; 
            v1 = y1; 
            v2 = y2; 
            x1 -= 25; 
            x2 -= 25; 
            Canvas->Brush->Color = clYellow; 
            Canvas->Ellipse(x1,y1,x2,y2); 
            Canvas->Brush->Color = clScrollBar; 
            Canvas->Ellipse(c1,v1,c2,v2); 
    } 
    } 
    }
    

    mfg cb



  • Es kommt immer noch der gleiche Error. Für mich ist das irgendwie gerade ein Rätsel! 😕



  • Also 2 Abfragen hintereinander ohne Zwischenbefehle macht keinen Sinn. Also eine If drauß machen. Die würde dann so aussehen:

    if(x1 > 10 && (x1d==1 || (x1d==9 && x1d==5x1d) || (x1d == 13 && x1d == 5x1d) || x1d==17)) 
       { 
            c1 = x1; 
            c2 = x2; 
            v1 = y1; 
            v2 = y2; 
            x1 -= 25; 
            x2 -= 25; 
            Canvas->Brush->Color = clYellow; 
            Canvas->Ellipse(x1,y1,x2,y2); 
            Canvas->Brush->Color = clScrollBar; 
            Canvas->Ellipse(c1,v1,c2,v2); 
       }
    

    Und die funzt so. Voraussetzung sind halt die Variablen, aber mit denen gibts ja kein Problem.

    mfg cb



  • Danke carstenhauer!
    1.Ich hab nie bedacht, das ich ja auch mit Klammern arbeiten könnte... 🕶
    2.Ich hab mir den Error mal genaqu durch den Kopf gehen lassen.
    Der fehler war dieser hier:

    x1d==5x1d==9
    

    Hier steh er jetzt mal richtig:

    if(x1d==1 || x1d==5 || x1d==9 || x1d==13 || x1d==17)
    

    Ich hab mich vertippt. Dummerweise ist mir das überhaupt nicht eingefallen. Erst wo ich deinen Qullcode gelesen habe, hab ich mir gesagt: Was hast du da aus meine Variablen gemacht? Seid wann hab ich eine 5x1d-Variable die dann gleich 9 sein soll? 😃


Anmelden zum Antworten