LE ITERAZIONI IN C#

IL CICLO WHILE

La sintassi di un ciclo while è la seguente:

while (condizione booleana)

{

    //ISTRUZIONI

}

C sharpLa condizione booleana è una normale espressione che restituisce true o false. È importante notare che se tale condizione è false prima di iniziare il ciclo (la condizione viene verificata prima) allora il ciclo while non verrà mai eseguito. While itera il blocco di codice racchiuso tra le parentesi graffe fintantoché la condizione è true. Vediamo un esempio:

byte b = 0;

while (b<5)

{

      Console.WriteLine(b);

      b++;

}

Il ciclo stampa i valori (0 1 2 3 4). Se ci dimenticassimo di incrementare b alla fine del loop si avrebbe un ciclo infinito che porterebbe ad un crash del programma in quanto la condizione false di fine ciclo non verrebbe mai raggiunta.

IL CICLO DO WHILE

La sintassi del ciclo do-while è la seguente:

do

{

       //ISTRUZIONI

} while (condizione booleana)

La variante rispetto al ciclo while è che il loop almeno una volta viene eseguito in quanto la condizione booleana è verificata alla fine del blocco di codice.

byte b = 0;

do

{

      Console.WriteLine(b);

      b++;

} while (b>0 && b<=5);

Stamperà a video (0 1 2 3 4 5). Domanda cosa succede in questo caso se omettiamo b++? Cosa verrà stampato a video?

IL CICLO FOR

La sintassi del ciclo for è la seguente:

for (condizione iniziale; condizione di test; istruzione di fine loop)

{

         //ISTRUZIONI

}

Come vedi il ciclo for è formato nell’intestazione da tre parti, separate da un punto e virgola. La condizione iniziale in cui generalmente viene dichiarata e inizializzata una variabile di controllo, la condizione di test rappresentata da una condizione booleana e l’istruzione di fine loop solitamente rappresentata dall’incremento o decremento della variabile di controllo. Vediamo un esempio.

for(int i=0; i<5; i++)

{

    Console.WriteLine(i);

}

L’istruzione for stamperà in questo caso (0 1 2 3 4).

ISTRUZIONI BREAK E CONTINUE

In tutti i cicli sinora visti è possibile specificare le istruzioni break e continue. Con break interrompiamo immediatamente il ciclo e il flusso del programma passa all’istruzione immediatamente successiva al blocco di codice iterato, con continue interrompiamo il blocco di codice nel loop e il flusso del programma torna in testa al ciclo. Supponiamo di voler stampare tutti i numeri pari che ci sono nell’intervallo da 0 a 15.

for(int i=0; i<15; i++)

{

if (i%2 == 0)

    Console.WriteLine(i);

else

    continue;

}

Stamperà a video (0 2 4 6 8 10 12 14).

Adesso invece supponiamo di voler uscire dal ciclo se una certa variabile assume il valore 5.

int y = 0;

for(int i=0; i<15; i++)

{

   if (y == 5)

     break;

   else

     Console.WriteLine(i);

     y++

}

Stamperà (0 1 2 3 4).

IL CICLO FOREACH

L’ultimo ciclo da esaminare è il foreach. Questo tipo di ciclo serve ad iterare oggetti. Esegue un’istruzione o un blocco di istruzioni per ogni elemento di una istanza di un tipo. Ad esempio:

string myVar = “pippo”;

foreach(char c in myVar)

{

    Console.WriteLine(c);

}

Stamperà tutti i singoli caratteri che si trovano nella stringa pippo.

LINK AI POST PRECEDENTI

CODICE VISUAL STUDIO CODE

using System;
namespace Iterazioni;

internal class Program
{
    private static void Main(string[] args)
    {
        //CICLO WHILE
        byte b = 0;
        while (b < 5)
        {
            Console.WriteLine(b);
            b++;
        }

        byte z = 0;
        //CICLO DO WHILE
        do
        {
            Console.WriteLine(z);
            z++;
        } while (z > 0 && z <= 5);

        //CICLO FOR
        for (var i = 0; i < 5; i++) Console.WriteLine(i);
        //L’istruzione for stamperà in questo caso (0 1 2 3 4).


        //LE ISTRUZIONI BREAK E CONTINUE
        for (var i = 0; i < 15; i++)
            if (i % 2 == 0)
                Console.WriteLine(i);
            else
                continue; //INCREMENTA i E TORNA IN TESTA AL CICLO	
        var y = 0;
        for (var i = 0; i < 15; i++)
        {
            if (y == 5)
                break; //INTERROMPE IMMEDIATAMENTE IL CICLO.
            Console.WriteLine(i);
            y++;
        }

        // IL CICLO FOREACH
        var myVar = "pippo";
        foreach (var x in myVar) Console.WriteLine(x);
    }

APPROFONDIMENTO SUI CICLI IN C#

In C#, “iterazioni” si riferisce ai loop o cicli, che sono strutture di controllo del flusso usate per ripetere un blocco di codice. Ecco una panoramica delle diverse strutture di loop disponibili in C#:

1. For Loop

Il loop for viene utilizzato quando si sa in anticipo quante volte si desidera ripetere un blocco di codice. La sua sintassi è:

for (initialization; condition; iteration) {

    // codice da eseguire

}

Esempio:

for (int i = 0; i < 10; i++) {
     Console.WriteLine(i);
}

2. While Loop

Il loop while continua a eseguire il blocco di codice finché la condizione specificata è vera. La sua sintassi è:

while (condition) {
// codice da eseguire
}

Esempio:

int i = 0;
while (i < 10) {
Console.WriteLine(i);
i++;
}

3. Do-While Loop

Il loop do-while è simile al while, ma garantisce che il blocco di codice venga eseguito almeno una volta, poiché la condizione viene verificata dopo l’esecuzione del blocco. La sua sintassi è:

do {
    // codice da eseguire
} while (condition);

Esempio:

int i = 0;
do {
Console.WriteLine(i);
i++;
} while (i < 10);

4. Foreach Loop

Il loop foreach è utilizzato per iterare attraverso gli elementi di una collezione (come array o liste). La sua sintassi è:

foreach (type variable in collection) {
  // codice da eseguire
}

Esempio:

int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers) {
Console.WriteLine(number);
}

Uso dei Cicli in Contesti Realistici

Ecco un esempio più complesso che utilizza vari tipi di cicli:

using System;
using System.Collections.Generic;

class Program {
static void Main() {
// Esempio di utilizzo di un ciclo for
for (int i = 0; i < 5; i++) {
Console.WriteLine($”For loop iteration: {i}”);
}

// Esempio di utilizzo di un ciclo while
int counter = 0;
while (counter < 3) {
Console.WriteLine($”While loop iteration: {counter}”);
counter++;
}

// Esempio di utilizzo di un ciclo do-while
int doCounter = 0;
do {
Console.WriteLine($”Do-while loop iteration: {doCounter}”);
doCounter++;
} while (doCounter < 2);

// Esempio di utilizzo di un ciclo foreach
List<string> fruits = new List<string> { “Apple“, “Banana“, “Cherry” };
foreach (string fruit in fruits) {
Console.WriteLine($”Foreach loop: {fruit}”);
}
}
}