Engem mindig zavartak a basic programokban azok a CASE ágak.
Pedig nagyon fontosak!
Nagy különbség a "sima" egymás utáni IF sorokhoz képest, hogy csak az egyik ág értékelődik ki, így gyorsabb is a programfutás (tehát még véletlenül sem lassítja) és sok algoritmust így sokkal egyszerűbb megírni (ugyanis, ha a valamely kiértékelendő változót módosítjuk az egyik IF ágban, akaratlanul is ráfutna a programvégrehajtás egy később IF ágra, mely már az új értéknek felel meg).
Példa: összefuttatás tétele:
NUMERIC A(1 TO N+1)
NUMERIC B(1 TO M+1)
NUMERIC C(0 TO N+M)
...
LET I=1:LET J=1:LET K=0
LET A(N+1)=INF:LET B(M+1)=INF
DO WHILE I<(N+1) OR J<(M+1)
LET K=K+1
SELECT CASE A(I)
CASE IS<B(J)
LET C(K)=A(I):LET I=I+1
CASE IS>B(J)
LET C(K)=B(J):LET J=J+1
CASE ELSE
LET C(K)=A(I):LET I=I+1:LET J=J+1
END SELECT
LOOP
LET C(0)=K ! C(0)-ba a vektor elemeinek száma