Variable höhersetzen und vorübergehend speichern.



  • hallo

    wollte fragen wie ich das machen kann, dass ich meine Variable hilfsvar außerhalb der else anweisung +1 setze und das sooft die else Anweisung erfüllt ist.

    Also er soll in den else teil rein seine sachen rechnen und dann hilfsvar +1 rechnen und dann den neuen hilfsvar-wert bei der 2ten else-anweisung ausführen.

    Die Variable hilfsvar hab ich global zunächst 0 gesetzt.

    Code:

    else //hilfsvar=0
    x=((hilfsvar)/10t);
    a=t
    x;
    return a;
    }
    // ab hier hilfsvar=1
    //soll sich hilfsvar=1 merken bis er wieder in die else-Anweisung reinspringt
    //nach der else-Anweisung soll hilfsvar=2 sein usw....

    Danke für eure Hilfe
    😃 😃 😃 😃 😃 😃 😃 😃 😃 😃



  • 1. Nutze Code - Tags.

    else //hilfsvar=0
    x=((hilfsvar)/10*t);
    a=t*x;
    return a;
    }
    // ab hier hilfsvar=1
    //soll sich hilfsvar=1 merken bis er wieder in die else-Anweisung reinspringt
    //nach der else-Anweisung soll hilfsvar=2 sein usw....
    

    2. Ich verstehe dein Problem nicht ganz. Wo ist z.b hilfsvar deklariert? (Wäre ev. ganz gut den ganzen/mehr Code zu sehen.

    int hilfsvar = 0;
    
    else
    hilfsvar++;
    x=((hilfsvar)/10*t);
    a=t*x;
    return a;
    }
    

    Ich kann sonst nur raten. Ist es das?



  • Ja so mein ich das schon.
    Mein Problem ist aber, dass er sich nicht den neuen Wert von hilfsvar merkt.
    Sobald er aus der else-anweisung raus ist, macht er 10 mal den gleichen hilfsvar-wert.
    Er soll ihn aber hochsetzen



  • zeig einfach mal ein bisschen mehr code...
    wo ist dieser teil definiert? in einer funktion direkt in main??
    usw.



  • GLfloat hilfsvar=0;
    
    GLfloat glCalcColor(double recValue, double min, double max){
    	    GLfloat t = ((recValue-min)/(max-min));
    		return t;
    	 } 
    
    GLfloat a;
    GLfloat glROT2(GLfloat t){
    	if((t>0.333) & (t<=0.666)){
    		return 0;
    	}
        else if((t<=0.333)||(t>=0.833 & t<1)){
    		return 1;
    	}
    	else
    		hilfsvar++;
    		x=((hilfsvar)/10*t);
    		a=t*x;
    		return a;
    
    	}
    

    Also so sieht die Geschichte aus.
    In der Main mache ich nichts, was jetzt hier von Bedeutung wäre.

    Danke
    🙂



  • Wer soll sich was merken?



  • Na c++ soll sich hilfsvar merken.
    Sodass er bei der nächsten else-Anweisung mit dem NEUEN hilfsvar-Wert arbeitet.



  • Aber du weißt schon, dass man Blöcke in geschweifte Klammern einsetzen muss, oder?
    Meinst du evtl das?

    ...
    else
    {
            hilfsvar++;
            x=((hilfsvar)/10*t);
            a=t*x;
            return a;
    }
    

    Ohne die geschweiften Klammern wird sonst nur die erste Zeile (also das hilfsvar++) als else-Teil ausgeführt; der Rest immer, weil es ja nicht mehr zum if/else-Teil gehört.



  • Badestrand schrieb:

    ...
    else
    {
            hilfsvar++;
            x=((hilfsvar)/10*t);
            a=t*x;
            return a;
    }
    

    Und bei diesem Code "merkt" sich "C++" auch den neuen Wert von hilfsvar.


Anmelden zum Antworten