Fondamenti di C/C++

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++

C
Esegui →
main.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;
}
Output previsto
1 2 3 4 5 
halved 4 times
tries = 3
1 3 5 7
C++
Esegui →
main.cpp
#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';
}
Output previsto
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

C espone piccole API procedurali e dettagli di rappresentazione.

C++

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.

Tutte le sfide