Difference between revisions of "83Plus:Basic:If"
(→Synopsis: + If...Then...Else...End) |
|||
Line 12: | Line 12: | ||
End | 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''. | + | 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 == | == Comments == |
Revision as of 10:44, 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.