IF ELSE THEN AHEAD
IF ( fl ---)
Le mot IF
est d'exécution immédiate.
IF
marque le début d'une structure de contrôle de
type IF..THEN
ou IF..ELSE..THEN
.
Lors de l'exécution, la partie de définition située entre IF
et
THEN
ou entre IF
et ELSE
est exécutée
si le flag booléen situé au sommet de la pile de données est vrai (f<>0).
Dans le cas contraire, si le flag booléen est faux (f=0), c'est la partie de
définition située entre ELSE
et THEN
qui sera exécutée. S'il n'y a pas de
ELSE
, l'exécution se poursuit après THEN
.
Example:
: BEAU? ( fl ---) IF ." Beau temps " ELSE ." Temps couvert " THEN ; 1 BEAU? \ affiche Beau temps 0 BEAU? \ affiche Temps couvert
ELSE ( ---)
Word of immediate execution and used in compilation only. Mark a
alternative in a control structure of the type:
(condition) IF ... ELSE ... THEN ...
At runtime, if the condition on the stack before IF
is
false, there is a break in sequence with a jump following ELSE
,
then resumed in sequence after THEN
.
Example:
: TEST ( ---) CR ." Appuyez sur une touche " KEY DUP 65 122 BETWEEN IF CR 3 SPACES ." c'est une lettre " ELSE DUP 48 57 BETWEEN IF CR 3 SPACES ." is a digit " ELSE CR 3 SPACES ." is a special character " THEN THEN DROP ;
THEN
Immediate execution word used in compilation only. Mark the end
a control structure of type IF..THEN
or
IF..ELSE..THEN
.
AHEAD ( comp: --- orig )
: pt1 AHEAD 1111 2222 THEN 3333 ; pt1 \ push 3333 on stack