Algoritmo iterativo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Fix link
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
Riga 13:
Per rendere agevole l'implementazione di procedure iterative nei [[linguaggio di programmazione|linguaggi di programmazione]] di alto livello, sono disponibili due fondamentali costrutti: ''for'' e ''while''. Il primo si presta ai cicli enumerativi (ossia quelli in cui il numero di iterazioni è prestabilito o dipende da un valore numerico calcolato prima dell'iterazione), mentre il secondo permette una libera applicazione della condizione di iterazione.
 
A tal proposito vanno fatte alcune importanti distinzioni sintattiche tra i linguaggi della famiglia [[Linguaggio C|C]] (con l'aggiunta di [[Java (linguaggio di programmazione)|Java]]) e il linguaggio [[Visual Basic]]. Affrontiamo separatamente le [[sintassi]] dei suddetti costrutti nei due casi
 
=== Famiglia C ===
Riga 53:
* Do... While esegue la prima iterazione, e poi si comporta come il precedente
 
Do...While è dunque particolarmente indicato quando si ha a che fare con [[Struttura dati|strutture dati]] dalle quali i dati da verificare devono prima essere estratti tramite una chiamata a funzione.
 
Ad esempio, posto di avere una classe di tipo [[Pila (informatica)|Stack]] ''MyStack'', contenente oggetti di tipo ''MyObj'', vogliamo scrivere a video il contenuto degli oggetti fino a trovare un particolare elemento terminatore, posto che lo stack non sia mai vuoto (es. il [[Costruttore (informatica)|costruttore]] inizializza lo stack col terminatore e la pop non lo elimina comunque). Il seguente codice richiede il ciclo do...while
Riga 67:
} while (Objstr != TERMINATOR);
 
Nei linguaggi C è possibile controllare la sequenza dinamica dei cicli iterativi mediante due istruzioni in grado rispettivamente di saltare alla prossima iterazione o interrompere del tutto il ciclo. Tali istruzioni sono '''continue''' e '''break'''. Ad esempio il seguente codice mostra i primi 5 [[file eseguibile|file eseguibili]] di una [[directory]], memorizzata come array di [[stringa (informatica)|stringhe]]. Nell'esempio non si tiene conto di estensioni multiple (es. ''.exe.bak'')
 
k = 0;