Difference between revisions of "83Plus:Basic:If"
(changed category sort key) |
m (ok this is going to take experimenting) |
||
Line 1: | Line 1: | ||
− | [[Category:83Plus:Basic:Conditionals|If | + | [[Category:83Plus:Basic:Conditionals|If[...Then[...Else]...End]]] |
== Synopsis == | == Synopsis == | ||
'''Token Size:''' 1 byte | '''Token Size:''' 1 byte |
Revision as of 10:48, 19 July 2005
Synopsis
Token Size: 1 byte
Syntax:
If condition command
If condition Then commands End
If condition Then commands Else commands End
If the specified condition evaluates to a real number equal to 0, command is skipped. If the condition evalutes to a real number not equal to 0, command is executed. command may be a single command, or it can be the command Then, in which case all commands until a corresponding End token are part of command. When using Else, one must also use Then and End.
Comments
Repeated use of a Goto statement within an If:Then statement will cause an increase in memory allocation, leading to program slowdowns and eventually a MEMORY error. For example, the following code will eventually cause an error:
0->X ;-> == STO operator Lbl 0 If 1 Then X+1->X Disp X Goto 0 End
If you must use a Goto within an If:Then statement, it is possible to trick the 83+ into thinking the block ended by jumping to an otherwise unused label that uses an End statement followed by a jump to the proper label. For example, the above program could be rewritten like so:
0->X Lbl 0 If 1 Then X+1->X Disp X Goto 2 End Return Lbl 2 End Goto 0
This would avoid the problem by causing the 83+ to terminate the If:Then block prior to jumping.
Since TI-BASIC has no equivalent of what real BASIC calls Select Case, multiple Ifs must be used in cases where a variable needs to be checked against multiple values.
Examples
A particular example is a keyloop. Assuming a keycode was stored in K, a sequence of If statements would compare K to the corresponding integer key value.
If K=21 Disp "2ND" If K=31 Disp "ALPHA" If K=22 Disp "MODE" If K=32 Disp "X,T,θ,n" ;θ == Alpha+0. To get the italic n, switch to Seq mode and press the X,T,θ,n key.