Un altro modo per eseguire l'iterazione è 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 degli 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 è vero, la funzione While continua con l'iterazione. Se è falso, la funzione While termina l'iterazione e lo script continua con qualsiasi codice segua la funzione While. JMP valuta il secondo argomento successivo. Questo codice è generalmente 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. Diamo un'occhiata a un esempio. In questo codice, c è un contatore o un indice ed è inizialmente impostato su Not Done è la variabile flag, che inizialmente è impostata su true. Quindi, nella funzione While, JMP valuta prima non Done e lo interpreta come un risultato booleano. Se non Fatto è vero, la funzione continua. Quindi, il corpo include il lavoro principale dell'iterazione, l'avvio della piattaforma di distribuzione, e quindi aggiorna anche la variabile non Done in base a un confronto booleano. Nel codice mostrato qui, JMP confronta il numero di colonne nella tabella dei dati con il valore corrente del contatore E aggiorna il contatore. Il confronto restituisce a se sono presenti più colonne nella tabella di dati e restituisce uno zero quando tutte le colonne sono state valutate. Questo risultato viene archiviato in not Done, che viene valutato all'inizio dell'iterazione successiva. Nota che l'operatore Post Increment restituisce il suo valore corrente prima dell'incremento, quindi l'ultimo pezzo del codice potrebbe essere scritto N Col maggiore di c, punto e virgola, c più-più e farebbe esattamente la stessa cosa.