Šiame straipsnyje sužinosime apie ciklą C # ir įvairius būdus, kaip juos naudoti programoje.
Programuojant dažnai pageidaujama tam tikrą skaičių kartų įvykdyti tam tikrą sakinių bloką. Galimas sprendimas bus tuos teiginius įvesti reikiamą skaičių kartų. Tačiau pakartojimų skaičius gali būti nežinomas iš anksto (kompiliavimo metu), o gal ir pakankamai didelis (tarkime, 10000).
Geriausias tokios problemos sprendimas yra kilpa. Kilpos naudojamos programuojant pakartotinai vykdyti tam tikrą teiginių bloką, kol įvykdoma kokia nors sąlyga.
Šiame straipsnyje mes pažvelgsime į C # kilpą.
C # už kilpą
Už žodį yra naudojama sukurti už kilpos C #. Sintaksė už už kilpos yra:
for (inicializavimas; condition; iterator) (// kilpos kūnas)
Kaip veikia kilpa?
- C # for ciklas turi tris teiginius:
initialization
,condition
iriterator
. initialization
Pareiškimas yra įvykdytas ne pirmas, ir tik vieną kartą. Čia paprastai deklaruojamas ir inicializuojamas kintamasis.- Tada
condition
įvertinama. Taicondition
yra loginė išraiška, ty ji grąžinatrue
arbafalse
. - Jei
condition
įvertinamatrue
:- Už ciklo viduje vykdomi teiginiai.
- Tada
iterator
vykdomas sakinys, kuris paprastai keičia inicijuoto kintamojo vertę. - Vėlgi
condition
yra vertinamas. - Procesas tęsiasi tol, kol
condition
bus įvertintafalse
.
- Jei
condition
įvertinama ikifalse
, „for“ ciklas baigiasi.
skirtas „Loop Flowchart“
1 pavyzdys: C # už kilpą
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); ) ) ) )
Kai vykdysime programą, išvestis bus:
C # Loop: Iteracija 1 C # Loop: Iteration 2 C # Loop: Iteration 3 C # Loop: Iteration 4 C # Loop: Iteration 5
Šioje programoje
initialization
pareiškimas yraint i=1
condition
pareiškimas yrai<=5
iterator
pareiškimas yrai++
Kai programa vykdoma,
- Pirma, kintamasis i deklaruojamas ir inicializuojamas į 1.
- Tada įvertinama būklė (
i<=5
). - Kadangi sąlyga grąžinama
true
, programa įvykdo for loop kilpą. Jis išspausdina pateiktą eilutę su Iteracija 1 (Iteracija tiesiog reiškia pasikartojimą). - Dabar įvertinamas iteratorius (
i++
). Tai padidina i reikšmę iki 2. - Sąlyga (
i<=5
) dar kartą įvertinama, o pabaigoje i reikšmė padidinama 1.true
Pirmąsias 5 kartus sąlyga bus įvertinta . - Kai i reikšmė bus 6, o sąlyga bus
false
, vadinasi, kilpa nutrūks.
2 pavyzdys: kilpai apskaičiuoti pirmųjų n natūraliųjų skaičių sumą
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); ) ) )
Kai vykdysime programą, išvestis bus:
Pirmųjų 5 natūralių skaičių suma = 15
Čia sumos ir n reikšmė inicijuojama atitinkamai 0 ir 5. Iteracinis kintamasis i inicializuojamas į 1 ir didinamas kiekvienoje iteracijoje.
Už ciklo, sumos vertė yra padidinta i ty sum = sum + i
. „For“ ciklas tęsiasi tol, kol i yra mažesnis arba lygus n (vartotojo įvestis).
Pažiūrėkime, kas vyksta pateiktoje programoje kiekvienoje iteracijoje.
Iš pradžių i = 1, suma = 0 ir n = 3
Dėl kilpos vykdymo veiksmųKartojimas | I vertė | i <= 5 | Sumos vertė |
---|---|---|---|
1 | 1 | tiesa | 0 + 1 = 1 |
2 | 2 | tiesa | 1 + 2 = 3 |
3 | 3 | tiesa | 3 + 3 = 6 |
4 | 4 | tiesa | 6 + 4 = 10 |
5 | 5 | tiesa | 10 + 5 = 15 |
6 | 6 | melagingas | Kilpa baigiasi |
Taigi galutinė sumos vertė bus 15, kai n = 5.
Keli posakiai „for for loop“ viduje
Mes taip pat galime naudoti kelias išraiškas „for for loop“ viduje. Tai reiškia, kad „for“ cikle galime turėti daugiau nei vieną inicializavimo ir (arba) iteratoriaus sakinį. Pažiūrėkime toliau pateiktą pavyzdį.
3 pavyzdys: kilpai su keletu inicializavimo ir iteratoriaus išraiškų
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); ) ) ) )
Kai vykdysime programą, išvestis bus:
i = 0 ir j = 0 i = 1 ir j = 1 i = 2 ir j = 2
Šioje programoje inicializavimo pareiškime deklaravome ir inicijavome du kintamuosius: i ir j.
Be to, iteratoriaus dalyje turime dvi išraiškas. Tai reiškia, kad tiek i, tiek j kiekvienoje iteracijoje yra didinami po 1.
Kilpai be inicializavimo ir iteratoriaus teiginių
Inicijavimas, sąlyga ir iteratoriaus sakinys yra neprivalomi for ciklui. Tai reiškia, kad mes galime paleisti „for loop“ ir be šių teiginių.
Tokiais atvejais, nes kilpa veikia kaip ciklas. Pažiūrėkime toliau pateiktą pavyzdį.
4 pavyzdys: kilpai be inicializavimo ir iteratoriaus sakinio
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++; ) ) ) )
Kai vykdysime programą, išvestis bus:
C # Loop: Iteracija 1 C # Loop: Iteration 2 C # Loop: Iteration 3 C # Loop: Iteration 4 C # Loop: Iteration 5
Šiame pavyzdyje nenaudojome inicializavimo ir iteratoriaus sakinio.
Kintamasis i inicializuojamas virš „for loop“ ir jo vertė yra didinama ciklo kūne. Ši programa yra tokia pati, kaip ir 1 pavyzdyje.
Panašiai sąlyga taip pat yra neprivalomas teiginys. Tačiau jei nenaudosime testo išraiškos, for ciklas neišbandys jokių sąlygų ir veiks amžinai (begalinis ciklas).
Begalinis kilpui
Jei „loop“ sąlyga visada yra teisinga, „loop“ veiks amžinai. Tai vadinama begaline kilpa.
5 pavyzdys: begalinis kilpui
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); ) ) ) )
Čia i inicializuojama į 1 ir sąlyga yra i>0
. Kiekvienoje iteracijoje mes padidiname i reikšmę 1, taigi sąlyga niekada nebus false
. Dėl to kilpa bus vykdoma be galo.
Mes taip pat galime sukurti begalinę kilpą, pakeisdami sąlygą tuščia. Pavyzdžiui,
for (;;) (// kilpos kūnas)
arba
for (inicializavimas;; iteratorius) (// kilpos turinys)