U ovom ćemo članku naučiti o petlji for u C # i različitim načinima njihove upotrebe u programu.
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 potražiti petlju u C #.
C # za petlju
Za ključnu riječ se koristi za stvaranje for petlja u C #. Sintaksa for petlje je:
for (inicijalizacija; uvjet; iterator) (// tijelo for petlje)
Kako radi petlja?
- C # za petlju ima tri izjave:
initialization
,condition
iiterator
. initialization
Naredba izvrši na prvi i samo jednom. Ovdje se varijabla obično deklarira i inicijalizira.- Zatim
condition
se procjenjuje.condition
Je logički izraz, odnosno vraća bilotrue
ilifalse
. - Ako se
condition
vrijednost procjenjuje natrue
:- Izvodi se unutar petlje for.
- Zatim
iterator
se izvršava izraz koji obično mijenja vrijednost inicijalizirane varijable. - Ponovno
condition
se ocjenjuje. - Postupak se nastavlja sve dok se
condition
ne ocijenifalse
.
- Ako
condition
se procjenjuje nafalse
, petlja for završava.
za dijagram toka petlje
Primjer 1: C # za petlju
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1; i<=5; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", 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 ovom programu,
initialization
izjava jeint i=1
condition
izjava jei<=5
iterator
izjava jei++
Kada se program pokrene,
- Prvo se varijabla i deklarira i inicijalizira na 1.
- Zatim
i<=5
se procjenjuje uvjet ( ). - Budući da se uvjet vraća
true
, program zatim izvršava tijelo for petlje. Datu liniju ispisuje s ponavljanjem 1 (ponavljanje jednostavno znači ponavljanje). - Sada
i++
se procjenjuje iterator ( ). To povećava vrijednost i na 2. - Uvjet (
i<=5
) se ponovno procjenjuje i na kraju se vrijednost i povećava za 1. Uvjet će procijeniti natrue
prvih 5 puta. - Kada će vrijednost i biti 6, a uvjet biti
false
, stoga će petlja završiti.
Primjer 2: za petlju za izračunavanje zbroja prvih n prirodnih brojeva
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int n = 5,sum = 0; for (int i=1; i<=n; i++) ( // sum = sum + i; sum += i; ) Console.WriteLine("Sum of first (0) natural numbers = (1)", n, sum); ) ) )
Kada pokrenemo program, izlaz će biti:
Zbroj prvih 5 prirodnih brojeva = 15
Ovdje su vrijednost zbroja i n inicijalizirane na 0 odnosno 5. Varijabla iteracije i inicijalizira se na 1 i povećava na svakoj iteraciji.
Unutar petlje for vrijednost zbroja uvećava se za i ie sum = sum + i
. Petlja for nastavlja se sve dok i nije manje ili jednako n (unos korisnika).
Pogledajmo što se događa u danom programu na svakoj iteraciji.
U početku je i = 1, zbroj = 0 i n = 3
Za korake 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 kada je n = 5.
Više izraza unutar for petlje
Također možemo koristiti više izraza unutar for petlje. To znači da možemo imati više od jedne inicijalizacije i / ili naredbe iteratora unutar for petlje. Pogledajmo primjer u nastavku.
Primjer 3: za petlju s višestrukim izrazima inicijalizacije i iteratora
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=0, j=0; i+j<=5; i++, j++) ( Console.WriteLine("i = (0) and j = (1)", i,j); ) ) ) )
Kada pokrenemo program, izlaz će biti:
i = 0 i j = 0 i = 1 i j = 1 i = 2 i j = 2
U ovom smo programu deklarirali i inicijalizirali dvije varijable: i i j u izrazu inicijalizacije.
Također, u iteratorskom dijelu imamo dva izraza. To znači da se i i j povećavaju za 1 na svakoj iteraciji.
Za petlju bez inicijalizacije i naredbi iteratora
Inicijalizacija, uvjet i izraz iteratora nisu obavezni u for petlji. To znači da možemo pokrenuti for petlju i bez ovih izjava.
U takvim slučajevima, petlja for djeluje kao while petlja. Pogledajmo primjer u nastavku.
Primjer 4: za petlju bez inicijalizacije i naredbe iteratora
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int i = 1; for ( ; 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 ovom primjeru nismo koristili naredbu inicijalizacije i iteratora.
Varijabla i je inicijalizirana iznad for petlje i njezina se vrijednost povećava unutar tijela petlje. Ovaj je program isti kao onaj u Primjeru 1.
Slično tome, uvjet je i neobavezna izjava. Međutim, ako ne koristimo testni izraz, petlja for neće testirati nijedno stanje i pokrenut će se zauvijek (beskonačna petlja).
Beskonačna za petlju
Ako je uvjet u for petlji uvijek istinit, for petlja će trajati zauvijek. To se naziva beskonačna petlja za.
Primjer 5: Beskonačna petlja za
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1 ; i>0; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", i); ) ) ) )
Ovdje je i inicijalizirano na 1 i uvjet je i>0
. Na svakoj iteraciji povećavamo vrijednost i za 1, tako da uvjet nikada neće biti false
. To će uzrokovati beskonačno izvršavanje petlje.
Također možemo stvoriti beskonačnu petlju zamjenom stanja prazninom. Na primjer,
for (;;) (// tijelo for petlje)
ili
for (inicijalizacija;; iterator) (// tijelo for petlje)