V tem članku bomo izvedeli o zanki while in do… while v C #, kako jih uporabljati in kakšna je razlika med njimi.
Pri programiranju je pogosto zaželeno, da določen blok stavkov izvedemo določeno število krat. Možna rešitev bo vnos teh izjav zahtevano število krat. Vendar število ponovitev morda ni znano vnaprej (v času prevajanja) ali morda dovolj veliko (recimo 10000).
Najboljša rešitev za tak problem je zanka. Zanke se uporabljajo pri programiranju za večkratno izvajanje določenega bloka stavkov, dokler ni izpolnjen neki pogoj.
V tem članku se bomo naučili uporabljati zanke while v jeziku C #.
Zanka C # while
Ključna beseda while se uporablja za ustvarjanje zanke while v C #. Sintaksa zanke while je:
while (test-izraz) (// telo of while)
Kako deluje zanka?
- Zanka C # while je sestavljena iz a
test-expression
. - Če
test-expression
je vrednost ocenjena natrue
,- stavki znotraj zanke while se izvajajo.
- po izvedbi
test-expression
se znova oceni.
- Če
test-expression
je vrednost ovrednotena zfalse
, se zanka while konča.
diagram poteka zanke
Primer 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++; ) ) ) )
Ko zaženemo program, bo rezultat:
C # za zanko: ponovitev 1 C # za zanko: ponovitev 2 C # za zanko: ponovitev 3 C # za zanko: ponovitev 4 C # za zanko: ponovitev 5
Sprva je vrednost i enaka 1.
Ko program doseže stavek while zanke,
- testni izraz
i <=5
se ovrednoti. Ker je i enak 1 in1 <= 5
jetrue
, izvrši telo zanke while. Tu se vrstica natisne na zaslon z iteracijo 1, vrednost i pa se poveča za 1, da postane 2. - Zdaj se testni izraz (
i <=5
) ponovno oceni. Tudi tokrat se izraz vrnetrue
(2 <= 5), zato se vrstica natisne na zaslon in vrednost i se zdaj poveča na 3 … - To poteka in zanka while se izvaja, dokler i ne postane 6. Na tej točki bo testni izraz ovrednotil
false
in se zanka konča.
Primer 2: zanka while za izračun vsote prvih 5 naravnih števil
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); ) ) )
Ko zaženemo program, bo rezultat:
Vsota = 15
Ta program izračuna vsoto prvih 5 naravnih števil.
- Prvotno je vrednost vsote inicializirana na 0.
- Na vsaki ponovitvi se vrednost vsote posodobi
sum+i
in vrednost i poveča za 1. - Ko vrednost i doseže 6, bo testni izraz
i<=5
vrnil false in zanka se konča.
Poglejmo, kaj se zgodi v danem programu na vsaki ponovitvi.
Na začetku je i = 1, vsota = 0
Medtem ko koraki izvajanja zankePonavljanje | Vrednost i | i <= 5 | Vrednost vsote |
---|---|---|---|
1. | 1. | prav | 0 + 1 = 1 |
2. | 2. | prav | 1 + 2 = 3 |
3. | 3. | prav | 3 + 3 = 6 |
4. | 4. | prav | 6 + 4 = 10 |
5. | 5. | prav | 10 + 5 = 15 |
6. | 6. | napačno | Loop se konča |
Končna vrednost vsote bo torej 15.
C # do … while zanka
Ključna beseda do in while se uporablja za ustvarjanje zanke do … while. Podobno je zanki while, vendar obstaja velika razlika med njima.
V zanki while se stanje preveri, preden se telo izvede. Ravno obratno je pri zanki do … while, tj. Stanje se preveri po izvedbi telesa.
Zato se bo telo zanke do… while izvedlo vsaj enkrat, ne glede na testni izraz.
Sintaksa zanke do … while je:
do (// telo zanke do while) while (test-izraz);
Kako… medtem ko zanka deluje?
- Telo do … while zanke se najprej izvede.
- Nato
test-expression
se ovrednoti. - Če
test-expression
jetrue
, se izvede telo zanke. - Ko
test-expression
jefalse
, naredite…, medtem ko se zanka konča.
do… while diagram poteka
Primer 3: do… while zanka
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); ) ) )
Ko zaženemo program, bo rezultat:
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) (// telo zanke while)
Neskončna zanka do… while
do (// telo zanke while) while (true);
Neskončna zanka je uporabna, kadar potrebujemo zanko, ki se izvaja, dokler deluje naš program.
Na primer, če je vaš program animacija, ga boste morali nenehno izvajati, dokler se ne ustavi. V takih primerih je za neprekinjeno večkratno izvajanje animacije potrebna neskončna zanka.