English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ciclo while di C#

C# fornisce il ciclo while, che esegue il blocco di codice finché la condizione specificata restituisce false.

Sintassi:

while(condition)
{  
  // Blocco di codice
}

Il ciclo while inizia con la parola chiave while e deve contenere una espressione di condizione booleana tra parentesi quadre, che restituisce true o false. Esegue un blocco di codice fino a quando l'espressione di condizione specificata restituisce false.

Il ciclo for contiene una parte di inizializzazione e una parte di aumento/diminuimento. Quando si utilizza un ciclo while, è necessario completare l'inizializzazione prima dell'inizio del ciclo e l'aumento o la diminuzione deve essere eseguita all'interno del ciclo.

int i = 0; // Inizializzazione
while (i < 10) // Condizione
{
    Console.WriteLine("i = {0}", i);
    i++; // Incremento
}
Output:
i = 0 
i = 1 
i = 2 
i = 3 
i = 4 
i = 5 
i = 6 
i = 7 
i = 8 
i = 9

Il ciclo while sopra contiene l'espressione i < 10. Nel ciclo while, usa i++ per aumentare il valore di i. Quando il valore di i è uguale a 10 e la condizione i < 10 restituisce false, viene eseguito il ciclo while sopra.

Esci dal ciclo while utilizzando la parola chiave break o return in alcune condizioni, come mostrato di seguito.

int i = 0;
while (true)
{
    Console.WriteLine("i = {0}", i);
    i++;
    if (i > 10)
        break;
}

Assicurati che il risultato del calcolo dell'espressione di condizione sia false, o esci dal ciclo while in alcune condizioni, per evitare cicli infiniti. Il seguente ciclo manca di una condizione appropriata o di un'interruzione del ciclo, rendendolo un ciclo while infinito.

int i = 0;
while (i > 0)
{
    Console.WriteLine("i = {0}", i);
    i++;
}

Ciclo while anidato

C# consente ai cicli while di essere anidati come segue. Tuttavia, non si consiglia l'uso di cicli while anidati, poiché è difficile da debuggare e mantenere.

int i = 0, j = 1;
while (i < 2)
{
    Console.WriteLine("i = {0}", i);
    i++;
    while (j < 2)
    {
        Console.WriteLine("j = {0}", j);
        j++;
    }
}
Output:
i = 0 
j = 1 
i = 1