TOC

This article has been localized into Italian by the community.

Control Structures:

I loop

Un'altra tecnica essenziale per scrivere i software è usare i cicli: la possibilità di ripetere un blocco di codice X volte. In C#, sono disponibili in 4 diverse varianti, e daremo un'occhiata a ciascuna di esse.

Il ciclo while

Il ciclo while è probabilmente il più semplice, quindi inizieremo con quello. Il ciclo while esegue semplicemente un blocco di codice fino a quando la condizione che gli dai è vera. Un piccolo esempio, e poi qualche altra spiegazione:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 0;

    while(number < 5)
    {
Console.WriteLine(number);
number = number + 1;
    }

    Console.ReadLine();
}
    }
}

Prova ad eseguire il codice. Otterrai un bell'elenco di numeri, da 0 a 4. Il numero viene prima definito come 0 e ogni volta che viene eseguito il codice nel ciclo, viene incrementato di uno. Ma perché arriva solo a 4, quando il codice dice 5? Affinché la condizione restituisca true, il numero deve essere inferiore a 5, che in questo caso significa che il codice che emette il numero non viene raggiunto quando il numero è uguale a 5. Questo perché la condizione del ciclo while viene valutata prima che entri nel blocco di codice.

Il ciclo do

L'opposto è vero per il ciclo do, che funziona come il ciclo while in altri aspetti. Il ciclo do valuta la condizione dopo l'esecuzione del ciclo, assicurandosi che il blocco di codice venga sempre eseguito almeno una volta.

int number = 0;
do  
{  
    Console.WriteLine(number);  
    number = number + 1;  
} while(number < 5);

L'output è lo stesso però - una volta che il numero è più di 5, il ciclo viene chiuso.

Il ciclo for

Il ciclo for è leggermente diverso. È preferibile quando sai quante iterazioni vuoi, sia perché conosci l'esatta quantità di iterazioni, sia perché hai una variabile contenente la quantità. Ecco un esempio sul ciclo for:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 5;

    for(int i = 0; i < number; i++)
Console.WriteLine(i);

    Console.ReadLine();
}
    }
}

Questo produce lo stesso identico output, ma come puoi vedere, il ciclo for è un po' più compatto. Consiste in 3 parti: inizializziamo una variabile per il conteggio, impostiamo un'istruzione condizionale per testarla e incrementiamo il contatore (++ significa la stessa cosa di "variabile = variabile + 1").

La prima parte, in cui definiamo la variabile i e la impostiamo su 0, viene eseguita una volta sola, prima dell'avvio del ciclo. Le ultime 2 parti vengono eseguite per ogni iterazione del ciclo. Ogni volta, i viene confrontato con la nostra variabile number: se i è inferiore a number, il ciclo viene eseguito ancora una volta. Dopo di ciò, i aumenta di uno.

Prova a eseguire il programma e, successivamente, prova a cambiare la variabile number in qualcosa di più grande o più piccolo di 5. Vedrai il ciclo rispondere alla modifica.

Il ciclo foreach

L'ultimo ciclo che vedremo è il ciclo foreach. Funziona su raccolte di elementi, ad esempio matrici (arrays) o altri tipi di elenchi incorporati. Nel nostro esempio useremo uno degli elenchi semplici, chiamato ArrayList. Funziona molto come un array, ma non preoccuparti, lo esamineremo in un capitolo successivo.

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{    
    ArrayList list = new ArrayList();
    list.Add("John Doe");
    list.Add("Jane Doe");
    list.Add("Someone Else");
   
    foreach(string name in list)
Console.WriteLine(name);

    Console.ReadLine();
}
    }
}

Ok, quindi creiamo un'istanza di ArrayList e quindi aggiungiamo alcuni elementi string ad esso. Usiamo il ciclo foreach per scorrere ogni elemento, impostando la variabile name sull'elemento che abbiamo raggiunto ogni volta. In questo modo, abbiamo una variabile con nome in uscita. Come puoi vedere, dichiariamo che la variabile name è del tipo stringa - devi sempre dire al ciclo foreach quale tipo di dati ti aspetti di estrarre dalla collezione. Nel caso in cui tu abbia una lista di vari tipi, puoi usare la classe dell'oggetto invece di una classe specifica, per estrarre ogni elemento come un oggetto.

Quando lavori con le collezioni, è molto probabile che tu stia utilizzando il ciclo foreach la maggior parte del tempo, principalmente perché è più semplice di qualsiasi altro ciclo per questo tipo di operazioni.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!