U ovom ćemo članku naučiti o petlji while i do… while u C #, kako ih koristiti i razlici između njih.
U programiranju je često poželjno izvršiti određeni blok naredbi određeni broj puta. Moguće rješenje bit će upisivanje tih izjava potreban broj puta. Međutim, broj ponavljanja možda nije poznat unaprijed (tijekom vremena sastavljanja) ili možda dovoljno velik (recimo 10000).
Najbolje rješenje za takav problem je petlja. Petlje se koriste u programiranju za opetovano izvršavanje određenog bloka izraza dok se ne ispuni neki uvjet.
U ovom ćemo članku naučiti koristiti while petlje u C #.
C # while petlja
A ključna riječ se koristi za stvaranje while petlja u C #. Sintaksa petlje while je:
while (test-izraz) (// tijelo dok)
Kako while petlja radi?
- C # while petlja sastoji se od a
test-expression
. - Ako
test-expression
se procjenjuje natrue
,- izvršavaju se izrazi unutar while petlje.
- nakon izvršenja,
test-expression
ponovno se ocjenjuje.
- Ako
test-expression
se procjenjuje nafalse
, while petlja se završava.
dijagram toka while
Primjer 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++; ) ) ) )
Kada pokrenemo program, izlaz će biti:
C # Za petlju: Iteracija 1 C # Za petlju: Iteracija 2 C # Za petlju: Iteracija 3 C # Za petlju: Iteracija 4 C # Za petlju: Iteracija 5
U početku je vrijednost i 1.
Kada program dosegne naredbu while petlje,
i <=5
vrednuje se testni izraz . Budući da je i 1 i1 <= 5
jesttrue
, izvršava tijelo while petlje. Ovdje se redak ispisuje na ekranu s ponavljanjem 1, a vrijednost i povećava se za 1 da bi postala 2.- Sada se testni izraz (
i <=5
) ponovno procjenjuje. I ovaj put se izraz vraćatrue
(2 <= 5), pa se linija ispisuje na ekranu i vrijednost i sada se povećava na 3 … - To ide i while petlja se izvršava sve dok i ne postanem 6. U ovom trenutku test-izraz će procijeniti
false
i stoga će petlja završiti.
Primjer 2: while petlja za izračunavanje zbroja prvih 5 prirodnih brojeva
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); ) ) )
Kada pokrenemo program, izlaz će biti:
Zbroj = 15
Ovaj program izračunava zbroj prvih 5 prirodnih brojeva.
- U početku se vrijednost zbroja inicijalizira na 0.
- Na svakoj se iteraciji vrijednost zbroja ažurira na,
sum+i
a vrijednost i povećava za 1. - Kada vrijednost i dosegne 6, test test
i<=5
će vratiti false i petlja se završava.
Pogledajmo što se događa u danom programu na svakoj iteraciji.
U početku je i = 1, zbroj = 0
Dok koraci izvršavanja petljeIteracija | Vrijednost i | i <= 5 | Vrijednost zbroja |
---|---|---|---|
1 | 1 | pravi | 0 + 1 = 1 |
2 | 2 | pravi | 1 + 2 = 3 |
3 | 3 | pravi | 3 + 3 = 6 |
4 | 4 | pravi | 6 + 4 = 10 |
5 | 5 | pravi | 10 + 5 = 15 |
6 | 6 | lažno | Petlja se završava |
Dakle, konačna vrijednost zbroja bit će 15.
C # do … while petlja
Raditi i dok ključna riječ se koristi za stvaranje Do … while petlja. Sličan je while petlji, no među njima postoji velika razlika.
U while petlji stanje se provjerava prije izvršenja tijela. Upravo je suprotno u petlji do … while, tj. Stanje se provjerava nakon izvršavanja tijela.
Zbog toga će se tijelo petlje do … while izvršiti barem jednom, bez obzira na test-izraz.
Sintaksa petlje do … while je:
do (// tijelo petlje do while) while (test-izraz);
Kako … dok petlja radi?
- Tijelo do … while petlje se prvo izvršava.
- Tada
test-expression
se ocjenjuje. - Ako
test-expression
jetrue
, izvršava se tijelo petlje. - Kada
test-expression
jefalse
, učinite … dok se petlja završava.
do… while loop dijagram
Primjer 3: petlja do … while
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); ) ) )
Kada pokrenemo program, izlaz će biti:
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) (// tijelo while petlje)
Beskonačna petlja do … while
do (// tijelo petlje while) while (true);
Beskonačna petlja korisna je kada nam treba petlja da se izvodi sve dok naš program radi.
Na primjer, ako je vaš program animacija, morat ćete ga neprestano izvoditi dok se ne zaustavi. U takvim je slučajevima neophodna beskonačna petlja da bi se animacija neprestano izvodila.