Basicprogramming(.org) > General questions and discussions

Basic Logic

**B+**:

Found at SdlBasic forum:

--- Quote ---'Hey, folks. While porting some code from Python, I accidentally discovered that sdlBasic accepts this syntax for comparison expressions:

'Code:

'dim x = 0

'print 1 <= x <= 10

'That shouldn't be valid Basic, and indeed it returns true when it's not supposed to, but sdlBasic compiles and runs the code. Beware!

--- End quote ---

--- Code: ---x = 0

PRINT " 1 <= x <= 10 is "; 1 <= x <= 10, " not supposed to return True???"

PRINT

PRINT "It is supposed to be True, Proof:"

PRINT " 1 <= x is "; 1 <= x ' > 0

PRINT " 0 <= 10 is "; 0 <= 10 ' > -1

PRINT " ((1 < x) <= 10) is "; ((1 < x) <= 10) ' > -1

PRINT

PRINT " See Basic knows the difference!"

PRINT " x is"; x ' > 0

PRINT "1 <= x AND x <= 10 is"; 1 <= x AND x <= 10 '> 0

--- End code ---

**ZXDunny**:

Depends on the BASIC, I suppose.

Sinclair BASIC uses 0 = False, 1+ = True.

So the line 1<=x<=10 will always return true regardless of what x actually is - if 1<=x then we get 1 (true). If x=0 then we get false (0). 1 and 0 are less than 10, so it will always evaluate to true.

**B+**:

Oh yeah, SmallBASIC uses 1 for True too and it also returns True for

--- Code: ---PRINT " 1 <= x <= 10 is "; 1 <= x <= 10, " not supposed to return True???"

--- End code ---

Wether 1 <= x returns -1, 0, or 1 all those are less than 10.

Is the Spell Checker working for you guys? it seems to have died for me on a couple of forums.

weather whether whatever what whaat whaaat :P

**Aurel**:

My main point about this is :

That shouldn't be valid Basic

and that is TRUE

**n00b**:

It actually is valid in pretty much every programming language. Comparisons are still numerical operators and boolean is just a value that denotes 0 and NOT 0.

Navigation

[0] Message Index

[#] Next page

Go to full version