Cicli: for, while e do-while
I cicli eseguono lo stesso blocco più volte. for va bene per un numero di passi noto, while ripete finché una condizione non diventa falsa e do-while esegue il corpo almeno una volta.
Che cos’è Cicli: for, while e do-while?
I cicli eseguono lo stesso blocco più volte. for va bene per un numero di passi noto, while ripete finché una condizione non diventa falsa e do-while esegue il corpo almeno una volta.
Ripeti un lavoro con i cicli for, while e do-while, più break e continue.
Punti importanti
- Abilita i warning del compilatore e correggili.
- Conosci tipo e lifetime di ogni valore.
- Valida input e limiti degli array.
Guarda come funziona
Premi Passo per eseguire il ciclo una mossa alla volta. Guarda la condizione che viene controllata, il corpo che viene eseguito e la tabella di traccia che cresce riga per riga.
Esempi di codice C e C++
#include <stdio.h>
int main(void) {
/* for: start; condition; step */
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
printf("\n");
/* while: repeat as long as the condition holds */
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
printf("halved %d times\n", steps);
/* do-while: the body runs at least once */
int tries = 0;
do {
tries++;
} while (tries < 3);
printf("tries = %d\n", tries);
/* break leaves the loop, continue skips to the next round */
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
if (i > 7) break;
printf("%d ", i);
}
printf("\n");
return 0;
}
1 2 3 4 5
halved 4 times
tries = 3
1 3 5 7
#include <iostream>
#include <vector>
int main() {
// for: start; condition; step
for (int i = 1; i <= 5; i++) {
std::cout << i << ' ';
}
std::cout << '\n';
// while: repeat as long as the condition holds
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
std::cout << "halved " << steps << " times\n";
// do-while: the body runs at least once
int tries = 0;
do {
tries++;
} while (tries < 3);
std::cout << "tries = " << tries << '\n';
// range-based for visits every element of a container
std::vector<int> values{1, 3, 5, 7};
int sum = 0;
for (int value : values) {
sum += value;
}
std::cout << "sum = " << sum << '\n';
}
1 2 3 4 5
halved 4 times
tries = 3
sum = 16
Confronto tra C e C++
L'intestazione del for contiene l'inizio, la condizione e il passo. break esce prima da un ciclo e continue salta al giro successivo. C++ aggiunge il for basato su intervallo, che visita ogni elemento di un contenitore senza indice.
C espone piccole API procedurali e dettagli di rappresentazione.
C++ mantiene il modello low-level aggiungendo tipi più sicuri.
Esercizi pratici
Esegui entrambe le versioni e modificale per osservare le diverse garanzie.
- Aggiungi input non validi e valori limite.
- Compila con -Wall -Wextra -Wpedantic.
- Separa dichiarazioni e implementazione.
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
- Sum of Odd Numbers Add every odd number up to a limit. Facile
- Countdown to Liftoff Count down from a number and end with Liftoff! Facile
- Riga della Tabellina Elenca i primi multipli di un numero. Facile