În acest articol, vom afla despre bucla while și do… while în C #, cum să le utilizați și diferența dintre ele.
În programare, de multe ori se dorește executarea anumitor blocuri de instrucțiuni pentru un număr specificat de ori. O posibilă soluție va fi să tastați acele declarații pentru numărul necesar de ori. Cu toate acestea, este posibil ca numărul de repetări să nu fie cunoscut în avans (în timpul compilării) sau poate suficient de mare (să zicem 10000).
Cea mai bună soluție la o astfel de problemă este bucla. Buclele sunt utilizate în programare pentru a executa în mod repetat un anumit bloc de instrucțiuni până când este îndeplinită o anumită condiție.
În acest articol, vom învăța să folosim buclele while în C #.
C # while loop
Cuvântul cheie while este folosit pentru a crea bucla while în C #. Sintaxa pentru bucla while este:
while (test-expression) (// corpul lui while)
Cum funcționează bucla?
- C # în timp ce bucla constă dintr-un
test-expression
. - Dacă
test-expression
este evaluat latrue
,- sunt executate instrucțiunile din bucla while.
- după executare,
test-expression
este evaluat din nou.
- Dacă
test-expression
este evaluat lafalse
, bucla while se termină.
în timp ce Buclă Diagrama de flux
Exemplul 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++; ) ) ) )
Când rulăm programul, ieșirea va fi:
C # Pentru buclă: Iterare 1 C # Pentru buclă: Iterare 2 C # Pentru buclă: Iterare 3 C # Pentru buclă: Iterare 4 C # Pentru buclă: Iterare 5
Initial valoarea lui i este 1.
Când programul ajunge la instrucțiunea while loop,
i <=5
se evaluează expresia testului . Deoarece i este 1 și1 <= 5
estetrue
, execută corpul buclei while. Aici, linia este tipărită pe ecran cu Iterarea 1, iar valoarea lui i este mărită cu 1 pentru a deveni 2.- Acum, expresia testului (
i <=5
) este evaluată din nou. Și de această dată, expresia revinetrue
(2 <= 5), astfel încât linia este tipărită pe ecran și valoarea lui i este acum mărită la 3 … - Aceasta merge și bucla while se execută până când i devine 6. În acest moment, expresia test va evalua
false
și, prin urmare, bucla se termină.
Exemplul 2: bucla while pentru a calcula suma primelor 5 numere naturale
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); ) ) )
Când rulăm programul, ieșirea va fi:
Suma = 15
Acest program calculează suma primelor 5 numere naturale.
- Initial valoarea sumei este initializata la 0.
- La fiecare iterație, valoarea sumei este actualizată
sum+i
și valoarea lui i este mărită cu 1. - Când valoarea lui i ajunge la 6, expresia test
i<=5
va reveni falsă și bucla se va termina.
Să vedem ce se întâmplă în programul dat pe fiecare iterație.
Inițial, i = 1, sumă = 0
În timp ce pașii de execuție a bucleiRepetare | Valoarea i | i <= 5 | Valoarea sumei |
---|---|---|---|
1 | 1 | Adevărat | 0 + 1 = 1 |
2 | 2 | Adevărat | 1 + 2 = 3 |
3 | 3 | Adevărat | 3 + 3 = 6 |
4 | 4 | Adevărat | 6 + 4 = 10 |
5 | 5 | Adevărat | 10 + 5 = 15 |
6 | 6 | fals | Bucla se termină |
Deci, valoarea finală a sumei va fi 15.
C # face … while loop
Cuvântul cheie do și while este folosit pentru a crea o buclă do … while. Este similar cu o buclă while, totuși există o diferență majoră între ele.
În bucla while, starea este verificată înainte de executarea corpului. Este exact opusul în bucla do … while, adică starea este verificată după executarea corpului.
De aceea, corpul do … while loop se va executa cel puțin o dată, indiferent de expresia test.
Sintaxa pentru do … while loop este:
do (// corpul buclei do while) while (test-expresie);
Cum … în timp ce bucla funcționează?
- Corpul do … while loop este executat la început.
- Apoi
test-expression
este evaluat. - Dacă
test-expression
estetrue
, corpul buclei este executat. - Când
test-expression
estefalse
, faceți … în timp ce bucla se termină.
face … în timp ce Bucla Diagrama de flux
Exemplul 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); ) ) )
Când rulăm programul, ieșirea va fi:
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) (// corpul buclei while)
Infinite do … while loop
do (// corpul buclei while) while (adevărat);
Bucla infinită este utilă atunci când avem nevoie de o buclă pentru a rula atâta timp cât rulează programul nostru.
De exemplu, dacă programul dvs. este o animație, va trebui să îl rulați constant până când este oprit. În astfel de cazuri, este necesară o buclă infinită pentru a rula animația în mod repetat.