Initialisierung bei for??
-
Moin. Ich hab gewisse Probleme mit der Initialisierung einer for-Schleife.
Folgender Code tuts schonmal nicht:
for((int i = 0),(bool go_on = true); go_on; i++)
(er bemeckert da was wegen syntax-error before bool)
SO gehts auch nicht (gleicher Grund):
for(int i = 0, bool go_on = true; go_on; i++)
aber wie musses denn nu?
-
so sollte es gehen :
int i; bool go_on; for( i = 0, go_on = true; go_on; i++)
Kurt
-
jep, nur dass ich damit i und go_on in den äußeren Scope gebracht hab, was eigentlich nicht Sinn der Sache ist. Es muss eigentlich ne Möglichkeit geben, die Deklaration auch im for-Kopf zu behalten
-
Ich glaub' das geht nicht. Bin mir aber nicht sicher. Ansonsten kannst Du das ja so machen
bool go_on = true; for (int i = 0; go_on; i++) { ... }
dann ist nur "go_on" im drüberliegenden Scope, oder Du machst nen Scope drumherum, was aber imo nicht sonderlich schön ist.
{ bool go_on = true; for (int i = 0; go_on; i++) { ... } }
aber eigentlich müsste das so gehen, afaik.
-
Du kannst nur eine Deklaration durchführen.
http://www.nongnu.org/hcb/#for-init-statement
-
Habe folgendes gefunden
http://www.cppreference.com/keywords/for.html
Da ist leider auch keine Erklärung warum so nicht geht wie du willst.
Kurt
-
Er kann auch einfach ein int als bool benutzen wenn er das so haben will:
for( int i = 0, go_on = true; go_on ; ++i ) {...}
Edit: Ja ich weis das es ist nicht typesafe ist. Das war nur n Vorschlag für ne Alternative.
BR
-
@pumuckl
Evtl. kannst du deine Schleife auch so aufbauen, dass du go_on einfach weglässt und dann einfach break'st, wenn du true zuweisen würdest.