}}}}} bei verschachtelten funktionen vereinfachen?
-
Hallo allerseits,
Ich programmiere einen Solver, der im 3-dimensionalen Raum "irgendwas" berechnet.
for(x[1]=0;x[1]<10,x[1]++) // x boxes {for(x[2]=0;x[2]<10,x[2]++) // y box {for(x[3]=0;x[3]<10,x[3]++) // zbox {for(x[4]=0;x[4]<10,x[4]++) // time {for(x[5]=0;x[5]<10,x[5]++) // element1 {for(x[6]=0;x[5]<10,x[5]++) // element2 CalculateSomething(x) }}}}}}
Ich fürchtem ich muss da noch zwei zusätzliche ebenen Einbauen.
Ich würde "}}}}}}" gerne durch irgendein Konstrukt der Form
"for(i=0;i<6;i++) { } }"
ersetzen.
Gibt es einen Weg wie man mit #define, oder ähnlichem einen Befehl }(6) erstellen kann, der die 6 (oder mehr) Klammern einfügt.
(Am Besten wäre es, wenn so viele Klammern eingefügt werden, wie gebraucht werden.)P.S.: Mir ist bewusst, das dies sehr schlechter Programmierstil ist.
-
Macht es keinen Sinn die inneren Schleifen in Funktionen auszulagern?
Das was du da vorhast kann ich nicht empfehlen, und so übel sehen die 6 '}' im Kontext gar nicht aus, das herrlich üble sind ja die for-Schleifen.
MfG SideWinder
-
Gehen tut das schon:
#define SECHS_KLAMMERN }}}}}}
-
Wozu brauchst du denn soviele Klammern? Solange du nur eine Anweisung nach der Schleife hast brauchst du doch garnicnt klammern. Gucks du hier:
for(x[1]=0;x[1]<10,x[1]++) // x boxes for(x[2]=0;x[2]<10,x[2]++) // y box for(x[3]=0;x[3]<10,x[3]++) // zbox for(x[4]=0;x[4]<10,x[4]++) // time for(x[5]=0;x[5]<10,x[5]++) // element1 for(x[6]=0;x[5]<10,x[5]++) // element2 CalculateSomething(x)
-
Semikolon vergessen nach der Funktion.
-
for(x[6]=0;x[5]<10 --> , <-- x[5]++)
ja und die Atribute der Schleibe werden du ; getrennt und nicht durch ,
-
Hast recht, also hier nochmal eine neue Version:
for(x[1]=0; x[1]<10: x[1]++) // x boxes for(x[2]=0; x[2]<10: x[2]++) // y box for(x[3]=0; x[3]<10; x[3]++) // zbox for(x[4]=0; x[4]<10: x[4]++) // time for(x[5]=0; x[5]<10; x[5]++) // element1 for(x[6]=0; x[6]<10; x[6]++) // element2 CalculateSomething(x);
vielleicht so doch übersichtlicher
for(x[1]=0; x[1]<10: x[1]++) // x boxes for(x[2]=0; x[2]<10: x[2]++) // y box for(x[3]=0; x[3]<10; x[3]++) // zbox for(x[4]=0; x[4]<10: x[4]++) // time for(x[5]=0; x[5]<10; x[5]++) // element1 for(x[6]=0; x[6]<10; x[6]++) // element2 CalculateSomething(x);
Ich glaube bei der letzten Schleife wurde vergessen den Index auf 6 zu setzen.