while schleife
-
Hi,
eine kleine frag: hab innerhalb einer while-schleife eine for-schleife installiert. In dieser befindet sich eine if-abfrage, wenn diese zutrifft soll wieder an den anfang der while-schleife gesprungen werden...
wie realisiere ich das am besten?
while(...) { i++; for(j=0; j<4; j++) { if(TBL[j][i].Access = OK) continue; } if(i >= TBL_MAX) { //... } }
D.h. wenn die if-Abfrage zutrifft, dann soll die zweite if-Abfrage gar nicht mehr abgefragt werden sondern gleich wieder i++ und wieder die for-schleife durchgelaufen werden.
TBL_MAX etc sind alles defines.
gruß
torben
-
Umstrukturieren oder goto. Wenn irgendjemand über deinen Code meckern könnte dann Umstrukturieren oder ein Ja/Nein-Flag. Eventuell ist return auch eine Option.
-
bool bContinue; while(...) { bContinue=false; i++; for(j=0; j<4; j++) { if(TBL[j][i].Access = OK) bContinue=true; continue; } if(!bContinue) { if(i >= TBL_MAX) { //... } } }
-
while(...) { i++; if(i == TBL_MAX) break; // Break the while loop if i is too big for(j=0; j<4; j++) { if(TBL[j][i].Access == OK) break; // Leave 'for' loop, continue with 'while' loop ... // Access != OK --> next j } }
-
_matze schrieb:
bool bContinue; while(...) { bContinue=false; i++; for(j=0; j<4; j++) { if(TBL[j][i].Access = OK) bContinue=true; continue; } if(!bContinue) { if(i >= TBL_MAX) { //... } } }
müsste man das nicht so schreiben:
if(TBL[j][i].Access = OK){ bContinue=true; break; }
-
guggst du?! schrieb:
müsste man das nicht so schreiben:
if(TBL[j][i].Access = OK){ bContinue=true; break; }
nein. das ist immer noch eine zuweisung.
-
guggst du?! schrieb:
_matze schrieb:
bool bContinue; while(...) { bContinue=false; i++; for(j=0; j<4; j++) { if(TBL[j][i].Access = OK) bContinue=true; continue; } if(!bContinue) { if(i >= TBL_MAX) { //... } } }
müsste man das nicht so schreiben:
if(TBL[j][i].Access = OK){ bContinue=true; break; }
Ja, ja, hast ja Recht! Flüchtigkeitsfehler...
-
_matze schrieb:
Flüchtigkeitsfehler...
welchen meinst du denn?
-
slipofpen-freak schrieb:
_matze schrieb:
Flüchtigkeitsfehler...
welchen meinst du denn?
Klammer und break. War nicht mein Tag...