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

Ciclo for di C#

In questo capitolo, imparerai come utilizzare il ciclo for, la struttura del ciclo for, i cicli for annidati che eseguono più volte istruzioni o blocchi di codice, e come uscire da un ciclo for.

La parola chiave for rappresenta il ciclo in C#. Il ciclo for esegue ripetutamente un blocco di istruzioni fino a quando la condizione specificata restituisce false.

Sintassi:

for (inizializzatore; condizione; iteratore)
{    
   //blocco di codice 
}

Il ciclo for contiene tre parti opzionali separate da punti e virgola:

Initializer: Usato per inizializzare una variabile che sarà una variabile locale del ciclo for e non può essere acceduta al di fuori del ciclo. Può anche essere zero o più istruzioni di assegnamento, chiamate di metodo, espressioni di incrementazione o decrementazione, come ++i o i++, e espressioni await.

Condition:La condizione è un'espressione booleana che restituirà true o false. Se il risultato del calcolo dell'espressione è true, eseguirà di nuovo il ciclo; altrimenti, esiterà dal ciclo.

Iterator:Definisce l'aumento o la riduzione del variabile di ciclo.

Il seguente ciclo for esegue un blocco di codice 10 volte.

for(int i = 0; i < 10; i++)
{
    Console.WriteLine("Valore di i: {0}", i);
}

Prova a vedere l'output:

Valore di i: 0
Valore di i: 1
Valore di i: 2
Valore di i: 3
Valore di i: 4
Valore di i: 5
Valore di i: 6
Valore di i: 7
Valore di i: 8
Valore di i: 9

Nell'esempio sopra, int i = 0 è un'espressione di inizializzazione, abbiamo definito un int La variabile i è inizializzata a 0. La seconda parte è l'espressione condizionale i < 10, se la condizione restituisce true, allora eseguirà un blocco di codice. Dopo aver eseguito il blocco di codice, passerà alla terza parte dell'iteratore. i+ + è una istruzione di incremento che aumenterà il variabile di ciclo i Il valore aumenta di 1. Ora, controllerà di nuovo l'espressione condizionale e ripeterà la stessa operazione fino a quando l'espressione condizionale restituisce false. La seguente figura spiega i passaggi di esecuzione del ciclo for.

La seguente figura spiega i passaggi di esecuzione del ciclo for.

Passaggi di esecuzione del ciclo for

Se un blocco di codice contiene solo una istruzione, non è necessario racchiuderla tra parentesi graffe { }, come segue.

 Esempio: ciclo for

for(int i = 0; i < 10; i++){
  Console.WriteLine("Valore di i: {0}", i);
}

Le parti di initializer, condizione e iteratore sono opzionali. Puoi inizializzare le variabili prima del ciclo for e definire le condizioni e gli iteratori all'interno del blocco di codice, come segue.

 Esempio: ciclo for C#

int i = 0;
for(;;)
{
    if (i < 10)
    {
      Console.WriteLine("Valore di i: {0}", i);
      i++;
    }else{
       break;
    }
}
Output:
Valore di i: 0
Valore di i: 1
Valore di i: 2
Valore di i: 3
Valore di i: 4
Valore di i: 5
Valore di i: 6
Valore di i: 7
Valore di i: 8
Valore di i: 9

 Poiché queste tre parti sono opzionali nel ciclo for, è necessario prestare attenzione alla definizione delle condizioni e degli iteratori. Altrimenti, sarà un ciclo infinito che non finirà mai.

for ( ; ; )
{
    Console.Write(1);
}
Output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Il variabile di controllo del ciclo for può essere qualsiasi tipo di dati numerici, ad esempio double, decimal, ecc.

for (double d = 1.01D; d < 1.10; d += 0.01D)
{
    Console.WriteLine("Valore di i: {0}", d);
}
Output:
Valore di i: 1.01
Valore di i: 1.02
Valore di i: 1.03
Valore di i: 1.04
Valore di i: 1.05
Valore di i: 1.06
Valore di i: 1.07
Valore di i: 1.08
Valore di i: 1.09

La parte di passo del ciclo for può aumentare o diminuire il valore della variabile.

for (int i = 10; i > 0; i--)
{
    Console.WriteLine("Valore di i: {0}", i);
}
Output:
Valore di i: 10
Valore di i: 9
Valore di i: 8
Valore di i: 7
Valore di i: 6
Valore di i: 5
Valore di i: 4
Valore di i: 3
Valore di i: 2
Valore di i: 1

Uscita dal ciclo for

Puoi anche usare la parola chiave break per uscire da un ciclo for.

for (int i = 0; i < 10; i++)
{
    if (i == 5)
        break;
    Console.WriteLine("Valore di i: {0}", i);
}
Output:
Valore di i: 0
Valore di i: 1
Valore di i: 2
Valore di i: 3
Valore di i: 4

Espressioni multiple

Un ciclo for può anche includere più espressioni separate da virgola come opzioni di inizializzazione e iteratori, come nel seguente esempio.

for (int i = 0, j = 0; i+j < 5; i++, j++)
{
    Console.WriteLine("Valore di i: {0}, J: {1} ", i, j);
}
Output:
Valore di i: 0, J: 0 
Valore di i: 1, J: 1 
Valore di i: 2, J: 2

Un ciclo for può anche includere istruzioni come opzioni di inizializzazione e iteratore.

int i = 0, j = 5;
for (Console.WriteLine($"Inizializzatore: i={i}, j={j}"); 
    i++ < j--; 
    Console.WriteLine($"Iteratore: i={i}, j={j}"))
    {
    }

Output:

Inizializzatore: i = 0, j = 5
Iteratore: i = 1, j = 4  
Iteratore: i = 2, j = 3  
Iteratore: i = 3,j = 2

Ciclo annidato

C# permette un ciclo for all'interno di un altro ciclo for.

for(int i = 0; i < 2; i++)
{
    for(int j = i; j < 4; j++)
       Console.WriteLine("Il valore di i: {0}, J: {1}", i, j);
    }
        
}
Output:
Il valore di i: 0,J:0 
Il valore di i: 0,J:1  
Il valore di i: 0,J:2  
Il valore di i: 0,J:3  
Il valore di i: 1,J:1  
Il valore di i: 1,J:2  
Il valore di i: 1, J: 3