fastbasic icon indicating copy to clipboard operation
fastbasic copied to clipboard

SELECT...CASE

Open mdraith opened this issue 1 year ago • 1 comments

Would be nice to have the following:

SELECT A
CASE 1:
  PRINT "A"
CASE 2 TO 4:
  PRINT "B-D"
DEFAULT:
  PRINT "OTHER"
ENDSELECT

mdraith avatar Jul 03 '24 06:07 mdraith

FYI, I had mentioned this in the past and @dmsc has replied:

No, I did not include a "SELECT CASE" statement, because is not that easy to implement: the result of the select expression needs to be stored in some place, and then compared with different values in each case. And from a speed perspective, a IF...ELIF...ELIF...ENDIF sequence using a variable should be faster.

.. in this thread: https://forums.atariage.com/topic/349675-fastbasic-help/

So, it likely would not be added.

Perhaps in the future, if enough people desire, a pre-processer could convert SELECT CASE to IF/ELIF/ENDIF statements before sending it to the compiler:

IF A=1
  PRINT "A"
ELIF A>=2 AND A<=4
  PRINT "B-D"
ELSE
  PRINT "OTHER"
ENDIF

comparing potential minified differences:

' SELECT CASE
S.A:C.1:?"A":C.2T.4:?"B-D":D.:?"OTHER":E.

' IF/ELIF
I.A=1:?"A":ELI.A>1A.A<5:?"B-D":EL.:?"OTHER":E.

EricCarrGH avatar Oct 21 '24 02:10 EricCarrGH