
Un altro modo per iterare è con la funzione While. Questa funzione accetta solo due argomenti: il test e il corpo. Quindi, se si desidera utilizzare una variabile contatore, indice o flag in uno dei due argomenti, è necessario inizializzarli prima di chiamare la funzione While. JMP valuta il primo argomento e lo interpreta come un risultato booleano per determinare se l'iterazione deve continuare. Se il risultato è true, la funzione While continua con l'iterazione. Se è false, la funzione While termina l'iterazione e lo script continua con il codice che segue la funzione While. JMP valuta il secondo argomento successivo. Questo codice è solitamente considerato il corpo dell'iterazione e JMP lo valuta ogni volta. Poiché non esiste un argomento di aggiornamento separato, parte di questo codice dovrebbe aggiornare la variabile contatore, indice o flag per l'iterazione successiva. Vediamo un esempio. In questo codice, c è un contatore o un indice ed è inizialmente impostato su Not Done. La variabile flag è inizialmente impostata su true. Quindi, nella funzione While, JMP valuta innanzitutto not Done e lo interpreta come un risultato booleano. Se not Done è true, la funzione continua. Quindi, il corpo include il lavoro principale dell'iterazione, ovvero l'avvio della piattaforma di distribuzione, e aggiorna anche la variabile not Done in base a un confronto booleano. Nel codice mostrato qui, JMP confronta il numero di colonne nella tabella dati con il valore corrente del contatore, E aggiorna il contatore. Il confronto restituisce a se ci sono più colonne nella tabella dati e restituisce zero quando tutte le colonne sono state valutate. Questo risultato viene memorizzato in not Done, che viene valutato all'inizio dell'iterazione successiva. Si noti che l'operatore Post Increment restituisce il suo valore corrente prima dell'incremento, quindi l'ultima parte del codice potrebbe essere scritta come N Col maggiore di c, punto e virgola, c più-più, e otterrebbe esattamente la stessa cosa.