Het kan natuurlijk altijd gebeuren dat net een boot van de hoge waterkant naar de lage waterkant versluisd is, en dat poort 1 nog openstaat als er een boot aan de lage waterkant aankomt.
Indien dit het geval is, moet het volledige algoritme niet uitgevoerd worden maar kunnen de stappen in het grijs overgeslagen worden.
De grijze blokken moeten enkel uitgevoerd worden als poort 2 nog moet zakken.
Dit is een voorwaarde.
Als poort 2 open is dan
Als aan deze voorwaarde voldaan (true) is worden onderstaande stappen uitgevoerd:
Laat poort 2 zakken
Open klep 1
Wacht tot water op laagste peil staat
Sluit klep 1
Open poort 1
Als niet aan deze voorwaarde voldaan is (dan staat poort 1 bij het begin van het algoritme open) dan moet er niets gebeuren.
In dit geval moet er niets gebeuren, maar het zou kunnen dat indien er niet aan de voldaan is (false), en een andere blok code moet uitgevoerd worden.
De algemene structuur in pseudocode ziet er dan zo uit:
Als <voorwaarde> dan
instructieblok 1
.....
anders
instructieblok 2
......
Grafisch ziet dit er zo uit::
De voorwaarde vind je terug in de gele blok.
Ofwel is aan de voorwaarde voldaan (T: true) en wordt de groene blok met instructies uitgevoerd.
Als niet aan de voorwaarde voldaan is (F: false) wordt de rode blok uitgevoerd. In dit voorbeeld is de rode blok leeg en zal er geen code uitgevoerd worden.
Na het uitvoeren van de groene of de rode blok, wordt de volgende stap in de sequentie uitgevoerd, namelijk de groen-blauwe blok.
Wanneer afhankelijk van een voorwaarde bepaalde blokken code wel of niet worden uitgevoerd, dan spreekt men van een conditie (soms ook wel selectie).