SlideShare a Scribd company logo
1 of 28
Strutture di ripetizione: while, do-while e for
Strutture di ripetizione
ciclo
struttura di controllo che permette di ripetere un
gruppo di istruzioni
corpo del ciclo
le istruzioni che vengono ripetute all’interno del
ciclo
Ciclo controllato da contatore
Ciclo il cui numero di iterazioni è conosciuto prima
dell’inizio dell’esecuzione del ciclo
La ripetizione del ciclo è gestita da una variabile di
controllo, il cui valore rappresenta un contatore
setta la variabile_di_controllo al valore iniziale 0
finchè variabile_di_controllo < valore finale
incrementa di 1 la variabile_di_controllo
Esempio: stipendio di 7 impiegati
contaImpiegti = 0;
while (contaimpiegati < 7) {
cout<<"Ore ";
cin>>ore;
cout<< "Costo Orario ";
cin>> CostoOrario ;
pagamento = ore * CostoOrario;
cout<< "Costo Orario ";
contaImpiegati = contaImpiegati + 1;
}
F
ContaImpiegati < 7
T
prendi i dati calcola lo
stipendio visualizza lo
stipendio incrementa
count_emp
ContaImpiegati+ +
Differenza tra while e if
while (contaimpiegati < 7) {
...
}
il corpo del while può essere eseguito zero, una o più
volte
if (contaimpiegati < 7) {
...
}
il corpo dell’if viene eseguito al più una volta
Variabile di controllo del ciclo
variabile il cui valore determina se il ciclo deve essere
ripetuto.
La variabile di controllo del ciclo deve essere:
• inizializzata
contaimpiegati viene posta a 0 prima dell’inizio del
while
• testata
il valore di contaimpiegati viene testato prima di ogni
iterazione del while
• aggiornata
durante ogni iterazione, il valore di contaimpiegati
viene aggiornato
Istruzione while
sintassi
while (loop_repetition_condition)
statement
esempio
countStars = 0;
while (countStars < N) {
cout <<“*”;
countStars = countStars + 1;
}
Istruzione while
La loop_repetition_condition viene testata;
se è vera, viene eseguita l’istruzione statement (corpo del
ciclo) e la loop_repetition_condition viene testata di
nuovo.
L’istruzione statement viene ripetuta fino a quando la
loop_repetition_condition rimane vera.
Quando la condizione diventa falsa, si esce dal while e
l’esecuzione continua con l’istruzione successiva al
while.
Istruzione while
Se la loop_repetition_condition è falsa la prima volta
che viene testata, l’istruzione statement non viene mai
eseguita.
Se la loop_repetition_condition rimane sempre vera,
il ciclo non termina (ciclo infinito).
Calcolare una somma di dati
in un ciclo
Calcolare il totale degli stipendi degli impiegati.
Accumulatore o contatore
variabile utilizzata per memorizzare una somma di
valori;
viene incrementata ad ogni iterazione del ciclo.
Istruzione for
La maggior parte dei cicli è costituita da 3 componenti
aggiunti al corpo del ciclo:
• inizializzazione della variabile di controllo del ciclo
• test della condizione di ripetizione del ciclo
• aggiornamento della variabile di controllo del ciclo
L’istruzione for permette di raggruppare tutte e tre le
componenti in un’unica posizione.
pagamentoTOtale = 0.0;
for (contaimpiegato = 0;
contaimpiegato < numeroImpiegati;
contaimpiegato++) {
}
cout<<"Ore ";
cin>>ore;
cout<< "Costo Orario ";
cin>> CostoOrario ;
pagamento = ore * CostoOrario;
cout<< "Costo Orario “;
Istruzione for
esempio
sintassi
for (initialization_expression;
loop_repetition_condition;
update_expression)
statement
for (countStars = 0;
countStars < N;
countStars += 1)
Cout<<“*”;
Istruzione for
Viene eseguita la initialization_expression.
Poi viene testata la loop_repetition_condition:
se è vera,viene eseguito statement, seguito da
update_expression.
Viene testata di nuovo la loop_repetition_condition e si
continua con l’esecuzione delle istruzioni finchè la
loop_repetition_condition non diventa falsa.
Quando la loop_repetition_condition diventa falsa, si
esce dal for e si continua l’esecuzione con l’istruzione
seguente.
Istruzione for - stile
utilizzata principalmente quando le fasi di inizializzazione
e aggiornamento sono semplici (es. azzeramento e
incremento).
Formati:
for (contaimpiegato = 0;
contaimpiegato < numeroimpiegati;
contaimpiegato += 1) {
istruzioni
}
for (i = 0; i < max; i += 1) {
istruzioni
}
Operatori di incremento e
decremento
Gli assegnamenti
conta = conta + 1;
conta += 1;
e
possono essere rimpiazzati da
conta ++;
Operatori di incremento e
decremento
++ è un operatore di incremento unario, il cui operando
deve essere una variabile;
++ provoca un effetto collaterale sulla variabile operando:
il contenuto della variabile viene incrementato di 1
-- è l’operatore di decremento: il contenuto della variabile
operando viene decrementato di 1
Effetto collaterale (side effect): modifica del contenuto
di una variabile provocata dall’esecuzione di
un’operazione.
Operatori di incremento e
decremento
il valore dell’espressione contenente l’operatore ++
dipende dalla posizione dell’operatore:
• incremento prefisso ++i
il valore dell’espressione è il valore contenuto nella
variabile dopo aver effettuato l’incremento
• incremento postfisso i++
il valore dell’espressione è il valore contenuto nella
variabile prima di effettuare l’incremento
Operatore di incremento - esempio
j
i
2 ??
j = i++;
j = ++ i;
i j
j
i
3 2
3 3
Cicli condizionali
In alcuni casi non siamo in grado di determinare il numero
di ripetizioni che verrano eseguite prima di cominciare
l’esecuzione del ciclo.
Es.: elaborazione di un insieme di valori; viene richiesto
all’utente il numero di dati da elaborare; se l’utente
inserisce un numero non valido (es. negativo), si chiede
di inserire nuovamente il numero, e si continua finche’
non viene inserito un numero valido.
Esempio - num. di osservazioni
Visualizza prompt e prendi in input numero di osservazioni
finchè numero di osservazioni è negativo
visualizza avvertimento e prendi in input numero di
osservazioni
Cout<<“inserisci il numero di osservazioni“;
Cin>>numeroOsservazioni;
while (numeroOsservazioni < 0) {
Cout<<“Numero di osservazioi negativo“;
Cout<<“prova Ancora “;
Cin>> numeroOsservazioni;
}
Cicli controllati da sentinella
Alcuni programmi prendono in input uno o più dati ad
ogni iterazione di un ciclo.
Se non conosco il numero esatto di dati da prendere in
input, occorre un meccanismo per segnalare al
programma che i dati sono finiti.
valore sentinella: valore utilizzato per indicare la
terminazione dei dati in input;
deve essere un valore diverso dai possibili valori
dei dati in input.
Cicli controllati da sentinella
1. prendi in input il primo dato
2. finchè non trovi il valore sentinella
3. elabora il dato corrente
4. prendi in input il prossimo dato
Esempio
Programma che calcola la somma dei voti di un gruppo
di studenti.
SENTINEL -99
int sum
int score
/* somma dei voti */
/* voto corrente */
Prima soluzione
1. inizializza somma a 0
2. finchè valore è diverso da SENTINEL
3. prendi in input valore
4. somma score a somma
Problemi:
• quando si esegue il primo confronto, valore non è
inizializzata
• nella penultima iterazione, viene inserito un voto valido
che viene sommato a somma ; la condizione 2 è
soddisfatta,
quindi si entra di nuovo nel corpo del ciclo; nell’ultima
iterazione viene inserito il valore sentinella, che viene
erroneamente sommato a somma !
Soluzione
1. inizializza somma a 0
2. prendi in input il primo valore
3. finchè valore è diverso da SENTINEL
4. somma valore a somma
5. prendi in input il prossimo valore
istruzione do-while
For e while testano la condizione prima di eseguire il
corpo del ciclo
Input interattivo: il corpo del ciclo deve essere eseguito
almeno una volta
1. prendi in input un valore
2. se il valore non è nell’intervallo specificato, torna al passo 1
do {
Cout<<“Inserisci una lettera dalla A alla E>“;
Cin>>scelta;
} while (scelta < ‘A’ || scelta > ‘E’);
do-while
esempio
sintassi
/* Find first even number */
do
Cin>>num;
while (num % 2 != 0);
do
statement
while (condition)
Si esegue statement. Poi, condition viene testata: se è vera,
si esegue di nuovo statement e si testa condition. Quando il
test di condition produce false, si esce dal ciclo e si esegue
l’istruzione successiva.
Nota: se il corpo contiene più istruzioni, quete devono
essere racchiuse tra parentesi graffe.

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

strutture iterative (WhileDoWhileFor).pptx

  • 1. Strutture di ripetizione: while, do-while e for
  • 2. Strutture di ripetizione ciclo struttura di controllo che permette di ripetere un gruppo di istruzioni corpo del ciclo le istruzioni che vengono ripetute all’interno del ciclo
  • 3. Ciclo controllato da contatore Ciclo il cui numero di iterazioni è conosciuto prima dell’inizio dell’esecuzione del ciclo La ripetizione del ciclo è gestita da una variabile di controllo, il cui valore rappresenta un contatore setta la variabile_di_controllo al valore iniziale 0 finchè variabile_di_controllo < valore finale incrementa di 1 la variabile_di_controllo
  • 4. Esempio: stipendio di 7 impiegati contaImpiegti = 0; while (contaimpiegati < 7) { cout<<"Ore "; cin>>ore; cout<< "Costo Orario "; cin>> CostoOrario ; pagamento = ore * CostoOrario; cout<< "Costo Orario "; contaImpiegati = contaImpiegati + 1; }
  • 5. F ContaImpiegati < 7 T prendi i dati calcola lo stipendio visualizza lo stipendio incrementa count_emp ContaImpiegati+ +
  • 6. Differenza tra while e if while (contaimpiegati < 7) { ... } il corpo del while può essere eseguito zero, una o più volte if (contaimpiegati < 7) { ... } il corpo dell’if viene eseguito al più una volta
  • 7. Variabile di controllo del ciclo variabile il cui valore determina se il ciclo deve essere ripetuto. La variabile di controllo del ciclo deve essere: • inizializzata contaimpiegati viene posta a 0 prima dell’inizio del while • testata il valore di contaimpiegati viene testato prima di ogni iterazione del while • aggiornata durante ogni iterazione, il valore di contaimpiegati viene aggiornato
  • 8. Istruzione while sintassi while (loop_repetition_condition) statement esempio countStars = 0; while (countStars < N) { cout <<“*”; countStars = countStars + 1; }
  • 9. Istruzione while La loop_repetition_condition viene testata; se è vera, viene eseguita l’istruzione statement (corpo del ciclo) e la loop_repetition_condition viene testata di nuovo. L’istruzione statement viene ripetuta fino a quando la loop_repetition_condition rimane vera. Quando la condizione diventa falsa, si esce dal while e l’esecuzione continua con l’istruzione successiva al while.
  • 10. Istruzione while Se la loop_repetition_condition è falsa la prima volta che viene testata, l’istruzione statement non viene mai eseguita. Se la loop_repetition_condition rimane sempre vera, il ciclo non termina (ciclo infinito).
  • 11. Calcolare una somma di dati in un ciclo Calcolare il totale degli stipendi degli impiegati. Accumulatore o contatore variabile utilizzata per memorizzare una somma di valori; viene incrementata ad ogni iterazione del ciclo.
  • 12. Istruzione for La maggior parte dei cicli è costituita da 3 componenti aggiunti al corpo del ciclo: • inizializzazione della variabile di controllo del ciclo • test della condizione di ripetizione del ciclo • aggiornamento della variabile di controllo del ciclo L’istruzione for permette di raggruppare tutte e tre le componenti in un’unica posizione.
  • 13. pagamentoTOtale = 0.0; for (contaimpiegato = 0; contaimpiegato < numeroImpiegati; contaimpiegato++) { } cout<<"Ore "; cin>>ore; cout<< "Costo Orario "; cin>> CostoOrario ; pagamento = ore * CostoOrario; cout<< "Costo Orario “;
  • 15. Istruzione for Viene eseguita la initialization_expression. Poi viene testata la loop_repetition_condition: se è vera,viene eseguito statement, seguito da update_expression. Viene testata di nuovo la loop_repetition_condition e si continua con l’esecuzione delle istruzioni finchè la loop_repetition_condition non diventa falsa. Quando la loop_repetition_condition diventa falsa, si esce dal for e si continua l’esecuzione con l’istruzione seguente.
  • 16. Istruzione for - stile utilizzata principalmente quando le fasi di inizializzazione e aggiornamento sono semplici (es. azzeramento e incremento). Formati: for (contaimpiegato = 0; contaimpiegato < numeroimpiegati; contaimpiegato += 1) { istruzioni } for (i = 0; i < max; i += 1) { istruzioni }
  • 17. Operatori di incremento e decremento Gli assegnamenti conta = conta + 1; conta += 1; e possono essere rimpiazzati da conta ++;
  • 18. Operatori di incremento e decremento ++ è un operatore di incremento unario, il cui operando deve essere una variabile; ++ provoca un effetto collaterale sulla variabile operando: il contenuto della variabile viene incrementato di 1 -- è l’operatore di decremento: il contenuto della variabile operando viene decrementato di 1 Effetto collaterale (side effect): modifica del contenuto di una variabile provocata dall’esecuzione di un’operazione.
  • 19. Operatori di incremento e decremento il valore dell’espressione contenente l’operatore ++ dipende dalla posizione dell’operatore: • incremento prefisso ++i il valore dell’espressione è il valore contenuto nella variabile dopo aver effettuato l’incremento • incremento postfisso i++ il valore dell’espressione è il valore contenuto nella variabile prima di effettuare l’incremento
  • 20. Operatore di incremento - esempio j i 2 ?? j = i++; j = ++ i; i j j i 3 2 3 3
  • 21. Cicli condizionali In alcuni casi non siamo in grado di determinare il numero di ripetizioni che verrano eseguite prima di cominciare l’esecuzione del ciclo. Es.: elaborazione di un insieme di valori; viene richiesto all’utente il numero di dati da elaborare; se l’utente inserisce un numero non valido (es. negativo), si chiede di inserire nuovamente il numero, e si continua finche’ non viene inserito un numero valido.
  • 22. Esempio - num. di osservazioni Visualizza prompt e prendi in input numero di osservazioni finchè numero di osservazioni è negativo visualizza avvertimento e prendi in input numero di osservazioni Cout<<“inserisci il numero di osservazioni“; Cin>>numeroOsservazioni; while (numeroOsservazioni < 0) { Cout<<“Numero di osservazioi negativo“; Cout<<“prova Ancora “; Cin>> numeroOsservazioni; }
  • 23. Cicli controllati da sentinella Alcuni programmi prendono in input uno o più dati ad ogni iterazione di un ciclo. Se non conosco il numero esatto di dati da prendere in input, occorre un meccanismo per segnalare al programma che i dati sono finiti. valore sentinella: valore utilizzato per indicare la terminazione dei dati in input; deve essere un valore diverso dai possibili valori dei dati in input.
  • 24. Cicli controllati da sentinella 1. prendi in input il primo dato 2. finchè non trovi il valore sentinella 3. elabora il dato corrente 4. prendi in input il prossimo dato Esempio Programma che calcola la somma dei voti di un gruppo di studenti. SENTINEL -99 int sum int score /* somma dei voti */ /* voto corrente */
  • 25. Prima soluzione 1. inizializza somma a 0 2. finchè valore è diverso da SENTINEL 3. prendi in input valore 4. somma score a somma Problemi: • quando si esegue il primo confronto, valore non è inizializzata • nella penultima iterazione, viene inserito un voto valido che viene sommato a somma ; la condizione 2 è soddisfatta, quindi si entra di nuovo nel corpo del ciclo; nell’ultima iterazione viene inserito il valore sentinella, che viene erroneamente sommato a somma !
  • 26. Soluzione 1. inizializza somma a 0 2. prendi in input il primo valore 3. finchè valore è diverso da SENTINEL 4. somma valore a somma 5. prendi in input il prossimo valore
  • 27. istruzione do-while For e while testano la condizione prima di eseguire il corpo del ciclo Input interattivo: il corpo del ciclo deve essere eseguito almeno una volta 1. prendi in input un valore 2. se il valore non è nell’intervallo specificato, torna al passo 1 do { Cout<<“Inserisci una lettera dalla A alla E>“; Cin>>scelta; } while (scelta < ‘A’ || scelta > ‘E’);
  • 28. do-while esempio sintassi /* Find first even number */ do Cin>>num; while (num % 2 != 0); do statement while (condition) Si esegue statement. Poi, condition viene testata: se è vera, si esegue di nuovo statement e si testa condition. Quando il test di condition produce false, si esce dal ciclo e si esegue l’istruzione successiva. Nota: se il corpo contiene più istruzioni, quete devono essere racchiuse tra parentesi graffe.