The manual says something else!!
Sorry, I only have the german version of this help.
Variablen, Typen, Operatoren wrote:Spezielle Informationen zur Verwendbarkeit logischer Ausdrücke
Logische Ausdrücke (z.B. "Position < 100") können uneingeschränkt mit Befehlen verwendet werden, die logische Ausdrücke erwarten (z.B. If, While, Until) sowie in Kombination mit logischen Operatoren (And, Or, XOr, Not).
In der vorliegenden PureBasic-Version liefern die Rückgabewerte der Vergleichsoperatoren (<, <=, =, >=, >, <>) Ergebnisse, die z.B. in Kombination mit mathematischen Ausdrücken zu unerwarteten Resultaten führen können. Verwenden Sie in solchen Fällen zusätzlich einen der Operatoren And, Or oder Not, um korrekte Ergebnisse zu erzielen.
Beispiel:
Counter = 0 : A = 20 : B = 20
Counter + (A=B) ; Counter wird um den Wert B erhöht (unabhängig vom Vergleichsergebnis)
Counter + (0 Or (A=B)) ; Counter wird um 1 erhöht, wenn der Vergleich #True (wahr) ergibt
Counter + (1 And (A=B)) ; Counter wird um 1 erhöht, wenn der Vergleich #True (wahr) ergibt
Counter + (Not Not (A=B)) ; Counter wird um 1 erhöht, wenn der Vergleich #True (wahr) ergibt
...just keep in mind that more than a handfull of people use this workaround because they are used to boolean expressions from other programming languages.
it would be not too bad an idea to implement it ~some~ day...
> Last time we talked about it, Fred said he does not plan it for now.
Hey, he told me it was planned!
AND51: It says (at least in the English help file) that And/Or can be used to make the relational operators (=><) work correctly. It doesn't say that this will make And and Or work correctly.