Šajā rakstā mēs uzzināsim par cilpu C # un dažādiem veidiem, kā tos izmantot programmā.
Programmējot, bieži tiek vēlēts izpildīt noteiktu paziņojumu bloku noteiktu skaitu reižu. Iespējamais risinājums būs šo paziņojumu ierakstīšana vajadzīgajā reižu skaitā. Tomēr atkārtojumu skaits var nebūt zināms iepriekš (sastādīšanas laikā) vai varbūt pietiekami liels (teiksim, 10000).
Labākais šādas problēmas risinājums ir cilpa. Cilpas tiek izmantotas programmēšanā, lai atkārtoti izpildītu noteiktu paziņojumu bloku, līdz tiek izpildīts kāds nosacījums.
Šajā rakstā mēs aplūkosim cilpu C #.
C # cilpai
Par atslēgvārdu tiek izmantota, lai izveidotu cilpas C #. Cilpas sintakse ir šāda:
for (inicializācija; nosacījums; iterators) (// cilpas pamatteksts)
Kā darbojas cilpa?
- C # cilpa ir trīs paziņojumus:
initialization
,condition
uniterator
. initialization
Paziņojums tiek izpildīts vispirms un tikai vienu reizi. Šeit mainīgais parasti tiek deklarēts un inicializēts.- Tad
condition
tiek novērtēts.condition
Ir Būla izteiksme, ti, tā atgriežas nutrue
vaifalse
. - Ja
condition
novērtētrue
:- Izraksti for ciklā ir izpildīti.
- Pēc tam
iterator
tiek izpildīts paziņojums, kas parasti maina inicializētā mainīgā vērtību. - Atkal
condition
tiek novērtēts. - Process turpinās, līdz
condition
tiek novērtētsfalse
.
- Ja
condition
tiek novērtēts līdzfalse
, cikls for beidzas.
par cilpu blokshēmu
1. piemērs: C # cilpa
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); ) ) ) )
Kad mēs palaidīsim programmu, izeja būs:
C # Loop: Iterācija 1 C # Loop: Iterācija 2 C # Loop: Iterācija 3 C # Loop: Iterācija 4 C # Loop: Iterācija 5
Šajā programmā
initialization
paziņojums irint i=1
condition
paziņojums iri<=5
iterator
paziņojums iri++
Kad programma darbojas,
- Pirmkārt, mainīgais i tiek deklarēts un inicializēts uz 1.
- Pēc tam
i<=5
tiek novērtēts stāvoklis ( ). - Tā kā nosacījums atgriežas
true
, tad programma izpilda for for loop ķermeni. Tas izdrukā norādīto līniju ar 1. atkārtojumu (atkārtojums vienkārši nozīmē atkārtojumu). - Tagad
i++
tiek novērtēts iterators ( ). Tas palielina i vērtību līdz 2. - Nosacījums (
i<=5
) tiek novērtēts vēlreiz, un beigās i vērtību palielina par 1. Nosacījums tiks novērtēts līdztrue
pirmajām 5 reizēm. - Kad i vērtība būs 6 un nosacījums būs
false
, tādējādi cilpa tiks pārtraukta.
2. piemērs: cilpai, lai aprēķinātu pirmo n dabisko skaitļu summu
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); ) ) )
Kad mēs palaidīsim programmu, izeja būs:
Pirmo 5 dabisko skaitļu summa = 15
Šeit summas un n vērtību inicializē attiecīgi uz 0 un 5. Iterācijas mainīgo i inicializē uz 1 un palielina katrā atkārtojumā.
For ciklā summas vērtību palielina ar i, ti sum = sum + i
. For cilpa turpinās, līdz i ir mazāks vai vienāds ar n (lietotāja ievadītais).
Apskatīsim, kas notiek dotajā programmā katrā atkārtojumā.
Sākumā i = 1, summa = 0 un n = 3
Cilpas izpildes soļiemAtkārtojums | I vērtība | i <= 5 | Summas vērtība |
---|---|---|---|
1 | 1 | taisnība | 0 + 1 = 1 |
2 | 2 | taisnība | 1 + 2 = 3 |
3 | 3 | taisnība | 3 + 3 = 6 |
4 | 4 | taisnība | 6 + 4 = 10 |
5 | 5 | taisnība | 10 + 5 = 15 |
6 | 6 | nepatiesa | Loop beidzas |
Tātad galīgā summas vērtība būs 15, kad n = 5.
Vairāki izteicieni for for loop iekšpusē
Mēs varam izmantot arī vairākas izteiksmes for for loop iekšpusē. Tas nozīmē, ka for ciklā mums var būt vairāki inicializācijas un / vai iteratora paziņojumi. Apskatīsim piemēru zemāk.
3. piemērs: ciklam ar vairākām inicializācijām un iteratora izteiksmēm
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); ) ) ) )
Kad mēs palaidīsim programmu, izeja būs:
i = 0 un j = 0 i = 1 un j = 1 i = 2 un j = 2
Šajā programmā mēs esam deklarējuši un inicializējuši divus mainīgos: i un j inicializācijas paziņojumā.
Turklāt mums ir divi izteicieni iteratora daļā. Tas nozīmē, ka gan i, gan j katrā atkārtojumā tiek palielināti ar 1.
Cilpai bez inicializācijas un iteratora paziņojumiem
Inicializācija, nosacījums un iteratora paziņojums for ciklā nav obligāti. Tas nozīmē, ka mēs varam palaist for for loop arī bez šiem paziņojumiem.
Šādos gadījumos cilpa darbojas kā cilpa. Apskatīsim piemēru zemāk.
4. piemērs: cilpai bez inicializācijas un iteratora paziņojuma
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++; ) ) ) )
Kad mēs palaidīsim programmu, izeja būs:
C # Loop: Iterācija 1 C # Loop: Iterācija 2 C # Loop: Iterācija 3 C # Loop: Iterācija 4 C # Loop: Iterācija 5
Šajā piemērā mēs neesam izmantojuši inicializācijas un iteratora paziņojumu.
Mainīgais i tiek inicializēts virs for loop, un tā vērtība tiek palielināta cilpas iekšpusē. Šī programma ir tāda pati kā 1. piemērā.
Līdzīgi nosacījums ir arī izvēles paziņojums. Tomēr, ja mēs neizmantosim testa izteiksmi, for cikls nepārbaudīs nevienu nosacījumu un darbosies uz visiem laikiem (bezgalīga cilpa).
Bezgalīgs cilpai
Ja nosacījums for ciklam vienmēr ir patiess, cilpa darbosies uz visiem laikiem. To sauc par bezgalīgu cilpu.
5. piemērs: Bezgalīgs cilpai
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); ) ) ) )
Šeit i tiek inicializēts uz 1 un nosacījums ir i>0
. Katrā atkārtojumā mēs palielinām i vērtību par 1, tāpēc nosacījums nekad nebūs false
. Tas liks cilpu izpildīt bezgalīgi.
Mēs varam arī izveidot bezgalīgu cilpu, aizstājot nosacījumu ar tukšu. Piemēram,
par (;;) (// cilpas pamatteksts)
vai
for (inicializācija;; iterator) (// cilpas pamatteksts)