In questo tutorial, impareremo l'uso dei cicli while e do … while nella programmazione C ++ con l'aiuto di alcuni esempi.
Nella programmazione del computer, i loop vengono utilizzati per ripetere un blocco di codice.
Ad esempio, supponiamo di voler mostrare un messaggio 100 volte. Quindi invece di scrivere l'istruzione print 100 volte, possiamo usare un ciclo.
Quello era solo un semplice esempio; possiamo ottenere molta più efficienza e raffinatezza nei nostri programmi facendo un uso efficace dei loop.
Esistono 3 tipi di loop in C ++.
- forciclo continuo
- whileciclo continuo
- do… whileciclo continuo
Nel tutorial precedente, abbiamo imparato a conoscere il ciclo C ++ for. Qui, ci accingiamo a conoscere whilee do… whileloop.
C ++ while Loop
La sintassi del whileciclo è:
 while (condition) ( // body of the loop )
Qui,
- Un whileciclo valuta il filecondition
- Se conditionrestituiscetrue,whileviene eseguito il codice all'interno del ciclo.
- Il conditionviene valutata di nuovo.
- Questo processo continua fino a quando il file conditionisfalse.
- Quando conditionrestituiscefalse, il ciclo termina.
Per ulteriori informazioni su conditions, visita Operatori relazionali e logici C ++.
Diagramma di flusso del ciclo while
 Diagramma di flusso del ciclo while C ++
 Diagramma di flusso del ciclo while C ++
Esempio 1: visualizzare i numeri da 1 a 5
 // C++ Program to print numbers from 1 to 5 #include using namespace std; int main() ( int i = 1; // while loop from 1 to 5 while (i <= 5) ( cout << i << " "; ++i; ) return 0; )
Produzione
1 2 3 4 5
Ecco come funziona il programma.
| Iterazione | Variabile | io <= 5 | Azione | 
|---|---|---|---|
| 1 ° | i = 1 | true | 1 viene stampato e iviene aumentato a2. | 
| 2 ° | i = 2 | true | 2 viene stampato e iviene aumentato a3. | 
| 3 ° | i = 3 | true | 3 viene stampato e iviene aumentato a4 | 
| 4 ° | i = 4 | true | 4 viene stampato e iviene aumentato a5. | 
| 5 ° | i = 5 | true | 5 viene stampato e iviene aumentato a6. | 
| 6 ° | i = 6 | false | Il ciclo è terminato | 
Esempio 2: solo somma di numeri positivi
 // program to find the sum of positive numbers // if the user enters a negative number, the loop ends // the negative number entered is not added to the sum #include using namespace std; int main() ( int number; int sum = 0; // take input from the user cout <> number; while (number>= 0) ( // add all positive numbers sum += number; // take input again if the number is positive cout <> number; ) // display the sum cout << "The sum is " << sum << endl; return 0; )
Produzione
Immettere un numero: 6 Immettere un numero: 12 Immettere un numero: 7 Immettere un numero: 0 Immettere un numero: -2 La somma è 25
In questo programma, all'utente viene richiesto di inserire un numero, che viene memorizzato nella variabile numero.
Per memorizzare la somma dei numeri, dichiariamo una somma variabile e la inizializziamo al valore di 0.
Il whileciclo continua fino a quando l'utente non immette un numero negativo. Durante ogni iterazione, il numero inserito dall'utente viene aggiunto alla variabile somma.
Quando l'utente immette un numero negativo, il ciclo termina. Infine, viene visualizzata la somma totale.
C ++ fai … mentre Loop
Il do… whileciclo è una variante del whileciclo con una differenza importante: il corpo del do… whileciclo viene eseguito una volta prima che conditionvenga controllato.
La sua sintassi è:
 do ( // body of loop; ) while (condition);
Qui,
- Il corpo del ciclo viene eseguito inizialmente. Quindi conditionviene valutato.
- Se conditionrestituiscetrue, il corpo del ciclo all'internododell'istruzione viene eseguito di nuovo.
- La conditionsi valuta ancora una volta.
- Se conditionrestituiscetrue, il corpo del ciclo all'internododell'istruzione viene eseguito di nuovo.
- Questo processo continua fino a quando conditionrestituiscefalse. Quindi il ciclo si ferma.
Diagramma di flusso di do … while Loop
 Diagramma di flusso di C ++ do … while loop
 Diagramma di flusso di C ++ do … while loop
Esempio 3: visualizzare i numeri da 1 a 5
 // C++ Program to print numbers from 1 to 5 #include using namespace std; int main() ( int i = 1; // do… while loop from 1 to 5 do ( cout << i << " "; ++i; ) while (i <= 5); return 0; )
Produzione
1 2 3 4 5
Ecco come funziona il programma.
| Iterazione | Variabile | io <= 5 | Azione | 
|---|---|---|---|
| i = 1 | non controllato | 1 viene stampato e iviene aumentato a 2 | |
| 1 ° | i = 2 | true | 2 viene stampato e iviene aumentato a 3 | 
| 2 ° | i = 3 | true | 3 viene stampato e iviene aumentato a 4 | 
| 3 ° | i = 4 | true | Viene stampato 4 e iviene aumentato a 5 | 
| 4 ° | i = 5 | true | 5 viene stampato e iviene aumentato a 6 | 
| 5 ° | i = 6 | false | Il ciclo è terminato | 
Esempio 4: solo somma di numeri positivi
 // program to find the sum of positive numbers // If the user enters a negative number, the loop ends // the negative number entered is not added to the sum #include using namespace std; int main() ( int number = 0; int sum = 0; do ( sum += number; // take input from the user cout <> number; ) while (number>= 0); // display the sum cout << "The sum is " << sum << endl; return 0; )
Uscita 1
Immettere un numero: 6 Immettere un numero: 12 Immettere un numero: 7 Immettere un numero: 0 Immettere un numero: -2 La somma è 25
Here, the do… while loop continues until the user enters a negative number. When the number is negative, the loop terminates; the negative number is not added to the sum variable.
Output 2
Enter a number: -6 The sum is 0.
The body of the do… while loop runs only once if the user enters a negative number.
Infinite while loop
If the condition of a loop is always true, the loop runs for infinite times (until the memory is full). For example,
 // infinite while loop while(true) ( // body of the loop )
Here is an example of an infinite do… while loop.
 // infinite do… while loop int count = 1; do ( // body of loop ) while(count == 1);
In the above programs, the condition is always true. Hence, the loop body will run for infinite times.
for vs while loops
A for loop is usually used when the number of iterations is known. For example,
 // This loop is iterated 5 times for (int i = 1; i <=5; ++i) ( // body of the loop )
Here, we know that the for-loop will be executed 5 times.
Tuttavia, i cicli whilee do… whilevengono solitamente utilizzati quando il numero di iterazioni è sconosciuto. Per esempio,
 while (condition) ( // body of the loop )
Dai un'occhiata a questi esempi per saperne di più:
- Programma C ++ per visualizzare le serie di Fibonacci
- Programma C ++ per trovare GCD
- Programma C ++ per trovare LCM








