Strutture di controllo
    Il "Quarto" fuso ] The 4th Time Zone ]   


 

Introduzione
OperazioniInput/Output
TheOperatori matematici
Operatori dello stack
Altri operatori
Colon definition
Strutture di controllo
Strutture condizionali
Costanti e variabili
Altre parole
Uso dell'editor
Messaggi di errore


                                   

[ Indice ][ Indietro ][ Avanti ]

CICLI

Ci sono essenzialmente due forme di ciclo

(1)                DO LOOP 

(2)                DO +LOOP

La prima struttura viene usata come segue

limite  inizio  DO  parole-forth +LOOP

Le ‘parole-forth’ entro il loop vengono eseguite finché inizio è uguale a limite, incrementando start (l'indice) di una unità ad ogni ciclo.

Digita:

: TEST1 5 0 DO ." Forth " CR LOOP ; <CR>

inserendo

TEST <CR>

verrà stampato

Forth
Forth
Forth
Forth
Forth

La seconda struttura di ciclo è data come segue:

limit  start  DO    forth-words    increment  +LOOP

Le ‘forth-words’ entro il ciclo vengono eseguite da 'start' a 'limit' e l'indice viene incrementato o decrementato del valore indicato.

Try:

: TEST2 5 0 DO ." Hello! " CR 2 +LOOP ; <CR>

executing TEST2 will print

Hello!
Hello!
Hello!

Dato che 'limit' e 'index' sono mantenuti sul return-stack, sarebbe utile poter esaminare il valore dell'indice. Ci sono delle parole per questo scopo:

I

Copia l'indice del ciclo dal return-stack allo stack dei dati.

J

Copia il valore dell'indice del ciclo LOOP nidificato sullo stack dei dati.

K

Copia il valore dell'indice del ciclo LOOP nidificato due volte sullo stack.

Digita:

: TEST3
4 0 DO 4 0 DO 4 0 DO  <CR>
  I J K . . . CR      <CR>
LOOP LOOP LOOP ;      <CR>

  eseguendo TEST3 si ottiene

111
112
113
...

ecc.

[ Indice ][ Indietro ][ Avanti ]


Ultimo aggiornamento: 29-11-2002. Copyright (c) 2000-2002 Matteo Vitturi. 
Per problemi o domande relativamente a questo sito contattare il webmaster
Last update: 11.29.2002. Copyright (c) 2000-2002 Matteo Vitturi.
For problems or questions related to this web please contact the webmaster.
1