Wenn die letzte abgefragte Zahl nicht im Bereich ist, dann ist das Endergebnis false.
Hier ein leichter verständliches Beispiel:
Von den Soldaten S1, S2 und S3 einer Gruppe befinden sich S1 und S2 in einem Bereich.
Es soll mit waituntil abgefragt werden ob wenigstens einer der Soldaten im Bereich ist.
Falsche Abfrage ergibt false:
waituntil { {_x in [S1,S2]} forEach [S1,S2,S3] };
{_x=S1 in Bereich[S1,S2]} Ergebnis = true
{_x=S2 in Bereich[S1,S2]} Ergebnis = true
{_x=S3 in Bereich[S1,S2]} Ergebnis = false
Bei dieser Art der Abfrage wird als Rückgabewert das Ergebnis der letzen Abfrage genommen!
Korrekte Abfrage ergibt true:
waituntil { _a=false; { if (_x in [S1,S2]) then {_a=true} } foreach [S1,S2,S3]; _a };
Bei der falschen Abfrage kann auch das richtige Ergebnis rauskommen, aber nicht immer.
|