TIA Doppelte FOR - Schleife und Exit

meikelneit

Level-2
Beiträge
172
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Tag zusammen,

ich habe eine Sitution mit der For Schleife die ich nicht verstehe. Ich habe ein Array der Art Array[x,y] of Bool und möchte mit einer Funktion die Erste Spalte suchen in der sich ein Feld mit dem Wert TRUE befindet.

Code:
FOR #sIdx_X := 1 TO 4 DO
    FOR #sIdx_Y := 1 TO 7 DO
        IF #"x/y_Pickpos"[#sIdx_X, #sIdx_Y] THEN
            #s.First_X_Pos := #sIdx_X;
            EXIT;
        END_IF;
    END_FOR;
END_FOR;

Auf diese Weise steht immer 4 in #s.First_X_Pos, selbst wenn in #"x/y_Pickpos"[#sIdx_X, #sIdx_Y] für #sIdx_X 1,2 oder 3 durchaus Felder TRUE sind.

Mache ich das auf diese Weise

Code:
#Lock := FALSE;
FOR #sIdx_X := 1 TO 4 DO
    FOR #sIdx_Y := 1 TO 7 DO
        IF #"x/y_Pickpos"[#sIdx_X, #sIdx_Y] AND NOT #Lock THEN
            #s.First_X_Pos := #sIdx_X;
            #Lock := TRUE;
        END_IF;
    END_FOR;
END_FOR;

funktioniert es. Ich finde jetzt seit einer Stunde einfach nicht raus was ich falsch mache, ich sehe wahrscheinlich dem Wald vor lauter Bäumen nicht mehr. Für Tips wäre ich außerst dankbar.


Lieben Gruß
Meikelneit
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dein EXIT endet nur den Durchlauf von die innere FOR Schleife.
Die äussere FOR Schleife fährt weiter, und ruft die innere FOR Schleife wieder auf.
Wie du es mit die Lock gemacht hat ist die korrekte Verfahren. Eventuell anstatt "Lock", nenne es "Gefunden" oder sowas.
 
Zurück
Oben