In C++, un ciclo di iterazione esegue un’istruzione finchè una determinata condizione si verifica. I cicli più comuni ed utilizzati sono: if/else, for e while. Andiamo a scoprire insieme il loro funzionamento e come applicarli.
Il ciclo if/else
Il ciclo if esegue un’istruzione ben precisa finchè la condizione dichiarata è vera. La struttura è la seguente:
Ciclo if | |
---|---|
Ciclo if/else |
La condizione va inserita tra parentesi tonde mentre l’istruzione nelle graffe, ricordandosi del “;” al termine di ognuna. E’ possibile anche impostare più di un’istruzione per ogni ciclo if dichiarato. Se volete dichiarare un’istruzione anche quando la condizione è falsa, potete utilizzare il ciclo if/else, che assegna una seconda istruzione nel caso non si verificasse la condizione dell’if. Inoltre, è possibile concatenare vari cicli if in un unico blocco. In questo caso si parla di if annidato.
Vediamo una piccola applicazione del ciclo if in tutti i casi:
[adsense]
Nel programma descritto nell’immagine, abbiamo inizialmente dichiarato tre variabili di tipo intero. Successivamente, viene stampato un messaggio che chiede all’utente di inserire i tre numeri a, b e c. Infine, sono dichiarati tre cicli if, che vengono avviati contemporaneamente dopo la compilazione del programma. Il primo semplicemente stampa i tre numeri se a è minore di b e b è minore di c. Il secondo, invece, somma a e b se a è minore di b. L’ultimo fa la differenza tra a e c, se a è maggiore di c, in caso contrario ne fa la somma. A fianco viene mostrata l’esecuzione del programma con i numeri 1, 2 e 3. Come potete osservare, il primo ciclo è verificato, infatti vengono stampati tutti i numeri. Il secondo non viene eseguito perchè a è minore di b. L’ultimo viene eseguito sia nel caso di condizione vera che falsa.
Il ciclo for
Il ciclo for viene utilizzato quando è necessario eseguire un’iterazione un numero finito di volte. E’ caratterizzato da una variabile inizializzata (solitamente indicata con i), una condizione, sotto la quale il ciclo può ripetere la sua iterazione, e un incremento, necessario a non far andare in loop il ciclo.
Il codice da utilizzare è il seguente:
Ciclo for |
---|
Vediamo il seguente programma:
Lo scopo del programma è scrivere un codice che permetta di sommare tra loro i numeri naturali minori o uguali di un certo valore massimo. Per cui bisogna dichiarare tale valore come intero e stampare un messaggio che ci permetta di inserirlo da tastiera. Dopo di ciò inseriamo un ciclo for che inizializzi la variabile ad 1 (perchè i numeri naturali partono da 1), imponga la condizione che sia minore o uguale al numero inserito e la incrementi finchè si verifica la condizione. Appena il ciclo si conclude, somma tra loro i valori di i ottenuti ad ogni iterazione del ciclo for e stampa tale somma a schermo. Come potete vedere dall’immagine, è stato scelto il numero 5 come valore massimo, per cui il ciclo for eseguirà la somma 1+2+3+4+5=15, stampandola a schermo.
Il ciclo while/do-while
Il ciclo while, a differenza del for, esegue l’istruzione un numero indefinito di volte, sempre sotto una specifica condizione. Il codice è mostrato di seguito:
Ciclo while | |
---|---|
Ciclo do-while |
Diamo un’occhiata al seguente programma:
Il programma è molto semplice: dichiara una variabile di tipo intero e stampa un messaggio per inserirla come input da tastiera. In seguito, il programma esegue un ciclo while che stampa il numero inserito finchè è maggiore di 0. Questo è un classico caso di loop poichè il numero in input verrà stampato all’infinito. Proprio per questo abbiamo inserito l’istruzione “break;” per fare in modo che il ciclo venga eseguito una sola volta, l’unica di cui abbiamo bisogno.
Questi erano i tre cicli di iterazioni più utilizzati nel linguaggio C++. Vi consigliamo di leggere anche le prime due parti del corso, che introducono il concetto di variabile e di stampa, applicati nella lezione di oggi.