Utilizzando il C# (o qualunque altro linguaggio) troveremo alcune situazioni in cui c’è la necessità di ricorrere a dei cicli, quindi eseguire un’operazione un determinato numero di volte.
Abbiamo quattro tipologie di cicli: while, do-while, for e foreach.
In questa lezione parleremo del for e del foreach. Scopriamo insieme come usarli e sfruttarli subito con esempi reali.
Come applicare il for in C#
Il ciclo for è molto simile al ciclo while, con la differenza che all’interno del costrutto abbiamo l’inizializzazione della variabile, la condizione di uscita dal ciclo e l’incremento della variabile, tutto insieme.
Ecco un esempio pratico:
for (int a = 0; a < 5; a++) { Console.WriteLine(a); }
Il fulcro del codice è tutto nella prima linea:
for (int a = 0; a < 5; a++)
Ogni elemento del ciclo è separato da un ;
In particolare, la prima parte è un’espressione che assegna alla variabile a il valore 0, in seguito viene inserita la condizione (a < 5) e nella parte finale si indica la variabile che viene incrementata ad ogni iterazione del ciclo (che non necessariamente deve essere la stessa che creiamo all’inizio).
Il codice contenuto all’interno del corpo del ciclo viene eseguito finchè la condizione risulterà vera.
NB: La variabile a, in questo caso, può essere usata solo all’interno del ciclo, poichè esiste solo al suo interno (e viene cancellata una volta concluso il ciclo).
C# For each: di cosa si tratta
Il foreach è una versione semplificata del ciclo for.
In particolare ci consente di creare un’iterazione del contenuto di un array. In altre parole il ciclo si ripete un numero di volte pari agli elementi dell’array (se ha 3 elementi, si ripeterà 3 volte, se ne ha 4 allora verrà ripetuto 4 volte e così via).
Ecco un esempio pratico:
using System; namespace ConsoleApp1 { class Program { static void Main(int[] args) { int[] numeri = new int[] { 1, 2, 3, 4 }; foreach (int val in numeri) { Console.WriteLine(val); } Console.ReadKey(); } } }
In questo caso andiamo a creare una variabile chiamata numeri, che contiene i valori 1, 2, 3 e 4.
Il foreach, ad ogni passaggio del ciclo, assegnerà alla variabile val tutti i valori contenuti nell’array. La condizione di fine ciclo non è necessaria, poichè è implicita (il ciclo è concluso quando abbiamo scorso ogni elemento dell’array).
Se l’istruzione viene eseguita su un array (o lista) che è null, viene generata una NullReferenceException. Se invece l’elemento che scorriamo è vuoto, il corpo del ciclo foreach non viene eseguito e viene semplicemente ignorato.