Cicli e Strutture di Controllo in Visual C/C++

Siamo giunti al quarto appuntamento di questa serie di articoli sul linguaggio C/C++. Oggi parleremo dei cicli iniziando con il for, vediamone la sintassi con un esempio:

// Esempio di ciclo for
#include <stdio.h>
int main(int argc, char* argv[])
{
   for (int i = 0; i < 100; ++i)
      printf("Stampo il numero %d\n", i + 1);

   scanf_s("Premere un tasto per terminare il programma");

   return 0;

}

In pratica abbiamo un contatore che viene inizializzato con un certo valore, la condizione oltre la quale si deve uscire dal ciclo e l’incremento di una unità al contatore. Facciamo lo stesso esempio questa volta utilizzando il ciclo while:

...
int i = 0;
while (i < 100)
{
   printf("Stampo il numero %d\n", i + 1);
   ++i;
}
...

Questa volta utilizzo un while con la condizione e poi incremento la variabile contatore. Possiamo fare la stessa cosa utilizzando un’altra forma:

...

int i = 0;
while (true)
{
   printf("Stampo il numero %d\n", i + 1);
   ++i;
   if (i > 99)
      break;
}
...

Otteniamo lo stesso risultato, in pratica io vi insegno i mattoncini e poi la vostra fantasia ed inventiva deve adeguarsi alle varie situazioni. Vado veloce nella spiegazione dei cicli perchè sono simili ad altri linguaggi e se non conoscete nemmeno il C# vi consiglio di vedere i miei articoli dedicati a questo linguaggio. Vi propongo un ultimo esempio utilizzando questa volta il do:

...
int i = 0;
do
{
   printf("Stampo il numero %d\n", i + 1);
   ++i;
}
while (i < 100);

scanf_s("Premere un tasto per terminare il programma");

return 0;
...

Il break è un comando che consente di uscire da qualsiasi ciclo, mentre continue consente di reinviare il flusso del programma alla prima riga del ciclo.
C’è un’altra struttura di controllo che molti usano, ma io personalmente mai perchè crea codice non lineare e crea confusione ed è indice di poca usabilità, il goto che permette di saltare ad una etichetta:

...
esci: // etichetta
   return 0;

   int i = 0;
   while (true)
   {
      if (i > 100)
         goto esci;

      ++i;
    }

    scanf_s("Premere un tasto per terminare il programma");

    return 0;
...

Ripeto che a me non piace per niente questo modo di programmare, per cui questa sarà l’ultima volta che vedrete il goto nei miei articoli.

<< Lezione Precedente – Inizio CorsoLezione Successiva >>

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in VC/C++. Contrassegna il permalink.