SELECT conditionally calls one of several alternative instructions.>>-SELECT--;----------------------------------------------------> .---------------------------------------------------. V | >----WHEN--expression--+---+--THEN--instruction--+---+-+--------> '-;-' '-;-' >----OTHERWISE--+-----------------+----+---+--END--;----------->< | .-------------. | '-;-' | V | | '---instruction-+-'
Each expression after a WHEN is evaluated in turn and must result in 0 or 1. If the result is 1, the instruction following the associated THEN (which may be a complex instruction such as IF, DO, or SELECT) is processed and control then passes to the END. If the result is 0, control passes to the next WHEN clause.
If none of the WHEN expressions evaluates to 1, control passes to the instructions, if any, after OTHERWISE. In this situation, the absence of an OTHERWISE causes an error (but note that you can omit the instruction list that follows OTHERWISE).
balance=100
check=50
balance = balance - check
Select
when balance > 0 then
say 'Congratulations! You still have' balance 'dollars left.'
when balance = 0 then do
say 'Warning, Balance is now zero! STOP all spending.'
say "You cut it close this month! Hope you do not have any"
say "checks left outstanding."
end
Otherwise
say "You have just overdrawn your account."
say "Your balance now shows" balance "dollars."
say "Oops! Hope the bank does not close your account."
end /* Select */