"if" und "else if" geht nicht!!!



  • verstehe ich hier etwas falsch?
    der müsste eigentlich nach "if" noch "else if" berücksichtigen, oder?
    er bleibt zwar in meiner for-schleife, jedoch ändert sich valA nie !?!?!?!
    und im debugger prüft er nur ständig erneut "if valA == true" und wenn nicht,
    dann springt er zum ende der for-schleife und beginnt von neuem...

    wisst ihr wo ich ne tomate auf welchen auge habe ?

    bool valA = true;
    
    	for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
    	{
    		// Solange du in diesem Bereich bist
    		if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd )
    		{
    			if	( valA == true )
    			{
    				DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d );
    				valA = false;
    			}
    			else if ( valA == false )
    			{
    				valA == true;
    			};
    		};
    	};
    

    vielen dank...



  • ich bin mir unsicher, aber evtl liegts daran, dass du am ende jedes schleifenrumpfes (falscherweise!) einen strichpunkt hast, der da denk ich nicht hingehört.



  • es gehören generell keine strichpunkte hinter die {} wo er sie gesetzt hat



  • bool valA = true;
    
    	for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
    	{
    		// Solange du in diesem Bereich bist
    		if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd )
    		{
    			if	( valA == true )
    			{
    				DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d );
    				valA = false;
    			}
    			else if ( valA == false )
    			{
    				valA == true;
    			}
    		}
    	};
    

    das ändert auch leider nix...



  • valA == true; sollte wohl eher valA = true; sein.



  • na aber du hast doch immernoch, unten an der letzten klammer ein

    ;
    

    und das gehört dort einfach nicht hin



  • ich lach mich krummmmmmm....

    wie kann mir nur so etwas passieren.... ?!?!?!

    danke...



  • Den "if ( valA == false )"-Part kannst du aber beim Else auch weglassen. Denn eine andere Option gibt es ja eh nicht.



  • Hallo

    bool valA = true;
    
        for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
        {
            // Solange du in diesem Bereich bist
            if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd )
            {
                if    ( valA )
                {
                    DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d );
                }
                valA = !valA;
            }
        }
    

    bis bald
    akari



  • ich lach mich doppelt krummmmm....

    wassn das für n quatsch "valA = true" ?
    ich will doch hier überprüfen und nicht zuweisen !

    es geht immer noch nicht... und alle semi´s sind raus

    for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
    	{
    		// Solange du in diesem Bereich bist
    		if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd )
    		{
    			if	( valA == true )
    			{
    				DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d );
    				valA = false;
    			}
    			else
    			{
    				valA == true;
    			}
    		}
    	}
    


  • Er kann dort beliebig viele ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stehen haben wie er möchte. Ist gar kein Problem. Sinnlos aber in keinem Fall ein Hindernis.

    Solange dort nicht if(val); steht und eigentlich was machen sollte...



  • perfekt akari.....
    einfach und kompakt...

    vielen dank...



  • Hallo

    x-coder44 schrieb:

    wassn das für n quatsch "valA = true" ?
    ich will doch hier überprüfen und nicht zuweisen !

    Vielleicht solltest du lieber erklären was das ganze überhaupt soll? Dir ist schon klar das bool nur true oder false sein kann, und das deshalb nach einer Überprüfung auf true keine Überprüfung auf false mehr nötig ist?

    /Edit : geht ja schnell hier.. ist also doch so wie ich dachte.

    bis bald
    akari



  • nene.... das war n bissl anders gedacht...
    wollte nur ne alternierende variable einfügen, um nur jedes zweite mal einen text zu zeichnen, weisste?

    hab das jetzt so realisiert, funzt super:

    for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
    	{
    		// Solange du in diesem Bereich bist
    		if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd )
    		{
    			if	( valA )
    			{
    				DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d );
    				valA = false;
    			}
    			else
    			valA = !valA;
    		}
    	}
    

    (so hab ich es mir auch gedacht)



  • Nichts anderes macht akaris code.
    Und es war wohl das "==" in Zeile 15 (im original Code) gemeint 😉



  • So ist kürzer:

    for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
    	{
    		// Solange du in diesem Bereich bist
    		if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd )
    		{
    			if	( valA )
    			{
    				DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d );
    			}
    			valA = !valA;
    		}
    	}
    


  • stimmt...

    hatte ich auch am anfang gemacht,
    jedoch mit der geistreichen sache:

    valA = valA * (-1)
    

    😃

    naja.....
    danke nochmal an alle, die sich dafür zeit genommen haben....



  • -erledigt-



  • x-coder44 schrieb:

    for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX )
    	{
    		// Solange du in diesem Bereich bist
    		if (/* ... */ d <= m_clientLP.xEnd )
    

    Hmm, was bei dieser Prüfung wohl rauskommt... Noch dürfen Wetten abgeschlossen werden :p



  • Ich habs: trü! 😃 Krieg ich jetz nen Keks?



  • Noch kurz :

    bool valA = true; 
    
        for ( double d = m_clientLP.gridX0 ; d <= m_clientLP.xEnd ; d += m_clientLP.stepX ) 
        { 
            // Solange du in diesem Bereich bist 
            if ( d >= m_clientLP.x0 && d <= m_clientLP.xEnd ) 
            { 
                if    ( valA == true ) 
                { 
                    DrawTextCenteredX ( dc, d , m_clientLP.y0 - ( m_clientDP.pitchLen / m_scale_y ), "%.2lf" , d ); 
                    valA = false; 
                } 
                else if ( valA == false ) 
                { 
                    valA == true; // WAS SOLL DIE SCHEISSE mach ein "=" draus !
    
                }; 
            }; 
        };
    

Anmelden zum Antworten