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=tx;
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.