Capitolo 4: Control Flow o Flusso di controllo in Dart

2
minuti
23/3/25

Il 'control flow' o 'flusso di controllo' è un concetto fondamentale nella programmazione che permette di controllare l'esecuzione del codice in base a determinate condizioni.

In Dart e Flutter, esistono diverse strutture per gestire il flusso di esecuzione, come le istruzioni condizionali (if/else), i cicli (while, for), le istruzioni di salto (break, continue) e i costrutti switch.

In questo capitolo esploreremo queste strutture con esempi pratici e numerosi esercizi per consolidare la comprensione.

If / Else statements

L'istruzione if/else consente di eseguire un blocco di codice solo se una determinata condizione è soddisfatta.

Se la condizione è `false`, il codice all'interno del blocco `else` viene eseguito.


void main() {
 int numero = 10;
 
 if (numero > 0) {
   print("Il numero è positivo");
 } else {
   print("Il numero non è positivo");
 }
}

Esercizio - If/Else Statements

Scrivi un programma che richieda all'utente di inserire un numero e stampi se il numero è pari o dispari.

While Loops

Il ciclo while esegue un blocco di codice finché una condizione specificata rimane vera.



void main() {
 int i = 0;
 while (i < 5) {
   print("Iterazione numero \$i");
   i++;
 }
}

For Loops

Il ciclo for è una struttura di controllo che consente di eseguire un blocco di codice un numero specifico di volte.

Esempio:

void main() {
 for (int i = 0; i < 5; i++) {
   print("Iterazione numero \$i");
 }
}

Esercizi - Fizz Buzz

Scrivi un programma che stampi i numeri da 1 a 20, ma:
- Per i multipli di 3 stampi "Fizz".
- Per i multipli di 5 stampi "Buzz".
- Per i multipli di entrambi stampi "FizzBuzz".

Break e Continue

break

L'istruzione `break` interrompe immediatamente il ciclo in cui si trova.

continue

L'istruzione `continue` salta l'iterazione corrente e passa alla successiva.

Esempio:


void main() {
 for (int i = 0; i < 10; i++) {
   if (i == 5) {
     break; // Interrompe il ciclo quando i è 5
   }
   print(i);
 }
}

Switch Statements

L'istruzione switch consente di controllare il valore di una variabile e di eseguire blocchi di codice diversi in base al suo valore.

Esempio:

void main() {
 String giorno = "Lunedì";
 
 switch (giorno) {
   case "Lunedì":
     print("Inizio settimana!");
     break;
   case "Venerdì":
     print("Quasi weekend!");
     break;
   default:
     print("Giorno normale.");
 }
}

Enumerations

Le enumerazioni (`enum`) sono un tipo di dato che consente di definire un insieme di valori costanti.

Esempio:

enum Colore { rosso, verde, blu }
void main() {
 Colore preferito = Colore.verde;
 print("Il colore preferito è \$preferito");
}

Esercizi - Simple Calculator

Scrivi un programma che chieda all'utente due numeri e un'operazione (`+`, `-`, `*`, `/`) e calcoli il risultato usando uno `switch`.

Ulteriori Esercizi

1. **Numeri Primi**: Scrivi un programma che verifichi se un numero è primo.
2. **Fibonacci**: Stampa i primi 10 numeri della sequenza di Fibonacci.
3. **Inverti Stringa**: Chiedi all'utente una parola e stampala al contrario.
4. **Somma dei Numeri Pari**: Calcola la somma dei numeri pari da 1 a 100.

Conclusioni

La gestione del control flow è essenziale per qualsiasi programmatore.

Ora hai acquisito le competenze per gestire condizioni (`if/else`), cicli (`while`, `for`), `switch`, `break/continue` e `enum`.

Continua a esercitarti per migliorare la tua logica e familiarizzare con questi concetti fondamentali.

Se hai completato tutti gli esercizi sei pronto per proseguire con il 5° Capitolo.

Se hai invece riscontrato dubbi, non esitare a contattarmi.

Contattami

Hai domande sulla progettazione web
o sui servizi offerti?
Sarà un piacere assisterti.