📘 Percorso didattico: il ciclo while

Questo blocco introduce il ciclo while mostrando:

  • la differenza concettuale rispetto al for;
  • l’uso del while con controllo logico;
  • la validazione dell’input, uno degli usi più importanti del while.

Progressione:

  1. Confronto for / while
  2. while con variabile booleana
  3. while per inserimento dati validi

1 — Confronto tra ciclo for e ciclo while

(stesso risultato, due approcci diversi)

# Comparazione tra ciclo for e ciclo while
# Stampa dei numeri da 0 a 10 attraverso ciclo for

print("Stampa con il FOR")
for i in range (11):
    print(i)

# Stessa stampa attraverso ciclo while
print("Stampa con il While")
i = 0
while i < 11:
    print(i)
    i = i + 1

📌 Obiettivo didattico

  • Il for è ideale quando il numero di iterazioni è noto.
  • Il while è più flessibile, ma richiede maggiore attenzione.

2 — Somma di numeri con fine decisa dall’utente

(ciclo while controllato da variabile booleana)

# Programma che effettua la somma di n numeri, con n non definito
# Applicazione del ciclo while controllato da variabile booleana

somma = 0
terminato = False

while not terminato:
    num = int(input("Inserisci un numero: "))
    somma = somma + num
    temp = input("Vuoi inserire altri numeri? (Y/N)")
    if temp == "N" or temp == "n":
        terminato = True

print("La somma dei numeri inseriti è", somma)

📌 Concetti chiave

  • numero di iterazioni non noto a priori;
  • uso di una variabile sentinella (terminato);
  • tipico esempio di while “guidato dall’utente”.

3 — Inserimento di dati validi

(uso corretto del while per validazione input)

# Il programma richiede all'utente di inserire un voto finché il dato immesso non
# è valido (nel caso specifico è valido solo se il voto è compreso tra 18 e 31)

# Viene utilizzato il paradigma di ciclo while controllato da variabile booleana
votoValido = False

while not votoValido:
    voto = int(input("Inserisci il voto dello studente: "))
    if voto >= 18 and voto <= 31:
        votoValido = True

print("Il voto Inserito è", voto)

📌 Questo è uno degli esempi più importanti in assoluto, perché introduce:

  • controllo dell’errore;
  • robustezza del programma;
  • concetto riutilizzabile in tutti i linguaggi.

🧠 Nota didattica

Questo trittico è perfetto per far capire che:

  • forripetizioni contate

  • whileripetizioni condizionate

  • la variabile booleana è uno schema mentale fondamentale (che ritornerà in:

    • input validation
    • menu
    • loop principali dei programmi)