Wolfgang Lenerz via Ql-Users wrote:
> Just a rant about the SBasic AND operator.
> Suppose this:
> 10 a=0
> 20 b=10
> 30 if (a<>0 AND b/a=5)
> 40 do_something
> 50 end if
> Run it and what happens?
> You get an "overflow" error at line 30.
> You get this error because it is trying to evaluate the second condition
> (b/a) and failing as a=0 and you can't divide by 0.
> BUT WHY IS IT TRYING TO EVALUATE THE SECOND CONDITION IN THE FIRST PLACE?
Maybe this wise language includes Chinese or Persian philosophy?
> The first condition (a<>0) is NOT met and so, in any other programming
> language I use, the second condition isn't even tested, as the result
> will be "false" anyway because of this.
IIRC other languages also do not _guarantee_ to stop evaluation after a
lefthand AND condition failed.
QL-Users Mailing List