Queste due nozioni rispondono alla necessità del programmatore di ripetere delle parti di codice in cicli iterativi con dati via via diversi in ogni ciclo fino all’esecuzione di una condizione di uscita. Nell’iterazione il loop è contenuto nel comando chiamante mentre in quella ricorsiva il loop si verifica mediante una funzione R(x) che al suo interno ha una chiamata a se stessa e ciò innesta ovviamente un loop. Come si interrompe questo loop? In R(x) ci deve essere definito il cosiddetto
Base Case che specifica le condizioni che portano all’uscita del loop