In questo articolo, impareremo il ciclo while e do … while in C #, come usarli e differenze tra loro.
Nella programmazione, spesso si desidera eseguire determinati blocchi di istruzioni per un numero di volte specificato. Una possibile soluzione sarà digitare quelle istruzioni per il numero di volte richiesto. Tuttavia, il numero di ripetizioni potrebbe non essere noto in anticipo (durante la compilazione) o forse abbastanza grande (diciamo 10000).
La migliore soluzione a questo problema è il loop. I cicli vengono utilizzati nella programmazione per eseguire ripetutamente un determinato blocco di istruzioni finché non viene soddisfatta una determinata condizione.
In questo articolo impareremo a usare i cicli while in C #.
C # ciclo while
La parola chiave while viene utilizzata per creare un ciclo while in C #. La sintassi per il ciclo while è:
while (test-espressione) (// corpo di while)
Come funziona il ciclo while?
- Il ciclo while C # è costituito da un file
test-expression
. - Se
test-expression
viene valutato atrue
,- vengono eseguite le istruzioni all'interno del ciclo while.
- dopo l'esecuzione,
test-expression
viene rivalutato.
- Se
test-expression
viene valutato afalse
, il ciclo while termina.
diagramma di flusso del ciclo while
Esempio 1: while Loop
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1; while (i<=5) ( Console.WriteLine("C# For Loop: Iteration (0)", i); i++; ) ) ) )
Quando eseguiamo il programma, l'output sarà:
C # Ciclo For: Iterazione 1 C # Ciclo For: Iterazione 2 C # Ciclo For: Iterazione 3 C # Ciclo For: Iterazione 4 C # Ciclo For: Iterazione 5
Inizialmente il valore di i è 1.
Quando il programma raggiunge l'istruzione del ciclo while,
i <=5
viene valutata l'espressione di prova . Poiché i è 1 ed1 <= 5
ètrue
, esegue il corpo del ciclo while. Qui, la linea viene stampata sullo schermo con l'iterazione 1 e il valore di i viene aumentato di 1 per diventare 2.- Ora, l'espressione di prova (
i <=5
) viene valutata di nuovo. Anche questa volta l'espressione restituiscetrue
(2 <= 5), quindi la riga viene stampata sullo schermo e il valore di i viene ora incrementato a 3 … - Questo va e il ciclo while viene eseguito fino a quando i diventa 6. A questo punto, l'espressione di test restituirà
false
e quindi il ciclo termina.
Esempio 2: ciclo while per calcolare la somma dei primi 5 numeri naturali
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1, sum=0; while (i<=5) ( sum += i; i++; ) Console.WriteLine("Sum = (0)", sum); ) ) )
Quando eseguiamo il programma, l'output sarà:
Somma = 15
Questo programma calcola la somma dei primi 5 numeri naturali.
- Inizialmente il valore di sum è inizializzato a 0.
- Ad ogni iterazione, il valore di sum viene aggiornato a
sum+i
e il valore di i viene incrementato di 1. - Quando il valore di i raggiunge 6, l'espressione di test
i<=5
restituirà false e il ciclo termina.
Vediamo cosa succede nel programma dato ad ogni iterazione.
Inizialmente, i = 1, sum = 0
Mentre i passaggi di esecuzione del cicloIterazione | Valore di i | io <= 5 | Valore della somma |
---|---|---|---|
1 | 1 | vero | 0 + 1 = 1 |
2 | 2 | vero | 1 + 2 = 3 |
3 | 3 | vero | 3 + 3 = 6 |
4 | 4 | vero | 6 + 4 = 10 |
5 | 5 | vero | 10 + 5 = 15 |
6 | 6 | falso | Il ciclo termina |
Quindi, il valore finale della somma sarà 15.
C # do … while loop
La parola chiave do e while viene utilizzata per creare un ciclo do … while. È simile a un ciclo while, tuttavia c'è una grande differenza tra loro.
Nel ciclo while, la condizione viene verificata prima che il corpo venga eseguito. È l'esatto opposto nel ciclo do … while, cioè la condizione viene controllata dopo che il corpo è stato eseguito.
Questo è il motivo per cui il corpo del ciclo do … while verrà eseguito almeno una volta indipendentemente dall'espressione di test.
La sintassi per il ciclo do … while è:
do (// corpo del ciclo do while) while (espressione di prova);
Come funziona il ciclo while?
- Il corpo del ciclo do … while viene eseguito all'inizio.
- Quindi
test-expression
viene valutato. - Se
test-expression
ètrue
, viene eseguito il corpo del ciclo. - Quando
test-expression
èfalse
, do … while il ciclo termina.
fare … while loop Diagramma di flusso
Esempio 3: do … while loop
using System; namespace Loop ( class DoWhileLoop ( public static void Main(string() args) ( int i = 1, n = 5, product; do ( product = n * i; Console.WriteLine("(0) * (1) = (2)", n, i, product); i++; ) while (i <= 10); ) ) )
Quando eseguiamo il programma, l'output sarà:
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
As we can see, the above program prints the multiplication table of a number (5).
- Initially, the value of i is 1. The program, then enters the body of do… while loop without checking any condition (as opposed to while loop).
- Inside the body, product is calculated and printed on the screen. The value of i is then incremented to 2.
- After the execution of the loop’s body, the test expression
i <= 10
is evaluated. In total, the do… while loop will run for 10 times. - Finally, when the value of i is 11, the test-expression evaluates to
false
and hence terminates the loop.
Infinite while and do… while loop
If the test expression in the while and do… while loop never evaluates to false
, the body of loop will run forever. Such loops are called infinite loop.
For example:
Infinite while loop
while (true) (// corpo del ciclo while)
Infinite do … while loop
do (// corpo del ciclo while) while (true);
Il ciclo infinito è utile quando abbiamo bisogno di un ciclo da eseguire finché il nostro programma è in esecuzione.
Ad esempio, se il tuo programma è un'animazione, dovrai eseguirlo costantemente finché non viene interrotto. In questi casi, è necessario un ciclo infinito per continuare a eseguire ripetutamente l'animazione.