Visita il nuovo sito: https://www.markonetools.it/cicli-e-strutture-di-controllo-in-clp/
Da IBM i 5.3 sono stati introdotti nei CLP i comandi per gestire i cicli e le strutture di selezione.
DOFOR: ciclo iterativo per un numero specifico di passiDCL VAR(&INT) TYPE(*INT) LEN(2)DCL VAR(&START) TYPE(*INT) LEN(2)DCL VAR(&END) TYPE(*INT) LEN(2)DCL VAR(&STEP) TYPE(*INT) LEN(2) :CHGVAR VAR(&START) VALUE(100)CHGVAR VAR(&END) VALUE(0)CHGVAR VAR(&STEP) VALUE(-1) :DOFOR VAR(&INT) FROM(&START) TO(&END) BY(&STEP) : (group of CL commands)ENDDODOWHILE: ciclo iterativo in base a condizione. La condizione viene verificata all'inizio del ciclo, quindi se è falsa il ciclo non verrà mai eseguito.DOUNTIL: ciclo iterativo in base a condizione. La condizione viene verificata alla fine del ciclo, quindi se il ciclo verrà eseguito almeno 1 voltaLEAVE: esce immediatamente dal ciclo e passa il controllo all'istruzione immediatamente successiva al corrispondente ENDDOITERATE: riprende l'esecuzione del ciclo al passo successivo (ovvero passa il controllo al corrispondente ENDDO)SELECT: apre una struttura di selezione. Le condizioni specificate dai successivi comandi WHEN vengono valutate in ordine. La prima condizione vera viene eseguita. Se nessuna condizione è vera viene eseguito il codice del comando OTHERWISE se presente.WHENOTHERWISEENDSELECT: chiude una struttura di selezioneDCL VAR(&INT) TYPE(*INT) LEN(4) :SELECT WHEN COND(&INT *LT 0) THEN(DO) : (group of CL commands) ENDDO WHEN COND(&INT *EQ 0) /* Do nothing when zero */ OTHERWISE CMD(CHGVAR &INT (&INT - 1)ENDSELECT..