Capitolo 4: Control Flow o Flusso di controllo in Dart
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.