Zanka C # for (z primeri)

V tem članku bomo spoznali zanko for v jeziku C # in različne načine njihove uporabe v programu.

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 bomo preučili zanko v C #.

C # za zanko

Ključna beseda for se uporablja za ustvarjanje zanke for v C #. Sintaksa for zanke je:

 for (inicializacija; pogoj; iterator) (// telo zanke for) 

Kako deluje zanka?

  1. C # za zanke ima tri izjave: initialization, conditionin iterator.
  2. initializationIzjava se izvede na prvi in samo enkrat. Tu je spremenljivka običajno deklarirana in inicializirana.
  3. Nato conditionse ovrednoti. Je conditionlogični izraz, tj. Vrne bodisi trueali false.
  4. Če conditionje vrednost ocenjena na true:
    1. Izjave v zanki for se izvajajo.
    2. Nato iteratorse izvede stavek, ki običajno spremeni vrednost inicializirane spremenljivke.
    3. Spet conditionse ovrednoti.
    4. Postopek se nadaljuje, dokler se conditionne oceni false.
  5. Če conditionje vrednost ovrednotena z false, se zanka for zaključi.

za diagram poteka zanke

Primer 1: C # za zanko

 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); ) ) ) ) 

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

V tem programu

  • initialization izjava je int i=1
  • condition izjava je i<=5
  • iterator izjava je i++

Ko se program zažene,

  • Najprej je spremenljivka i deklarirana in inicializirana na 1.
  • Nato i<=5se ovrednoti pogoj ( ).
  • Ker se stanje vrne true, program nato izvrši telo zanke for. Dato vrstico natisne z ponovitvijo 1 (ponovitev preprosto pomeni ponovitev).
  • Zdaj se oceni iterator ( i++). S tem se vrednost i poveča na 2.
  • Pogoj ( i<=5) se ponovno ovrednoti in na koncu se vrednost i poveča za 1. Pogoj bo trueprvih 5-krat ocenil na .
  • Ko bo vrednost i 6 in bo pogoj, bo falsezanka končana.

Primer 2: za zanko za izračun vsote prvih n naravnih števil

 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); ) ) ) 

Ko zaženemo program, bo rezultat:

 Vsota prvih 5 naravnih števil = 15

Tu se vrednost vsote in n inicializirata na 0 oziroma 5. Spremenljivka iteracije i se inicializira na 1 in se poveča na vsaki ponovitvi.

Znotraj zanke for se vrednost vsote poveča za i ie sum = sum + i. Zanka for se nadaljuje, dokler i ni manjši ali enak n (vnos uporabnika).

Poglejmo, kaj se zgodi v danem programu na vsaki ponovitvi.

Sprva je i = 1, vsota = 0 in n = 3

Za korake izvajanja zanke
Ponavljanje 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

Torej, končna vrednost vsote bo 15, če je n = 5.

Več izrazov znotraj zanke for

V zanki for lahko uporabimo tudi več izrazov. To pomeni, da imamo lahko v zanki for več kot en stavek o inicializaciji in / ali iteratorju. Oglejmo si spodnji primer.

Primer 3: za zanko z več izrazi inicializacije in iteratorja

 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); ) ) ) ) 

Ko zaženemo program, bo rezultat:

 i = 0 in j = 0 i = 1 in j = 1 i = 2 in j = 2

V tem programu smo v inicializacijskem stavku deklarirali in inicializirali dve spremenljivki: i in j.

V iteratorskem delu imamo tudi dva izraza. To pomeni, da se i in j na vsaki ponovitvi povečata za 1.

Za zanko brez inicializacije in stavkov iteratorja

Inicializacija, pogoj in stavek iteratorja niso obvezni v zanki for. To pomeni, da lahko zaženemo for zanko tudi brez teh izjav.

V takih primerih zanka for deluje kot zanka while. Oglejmo si spodnji primer.

Primer 4: za zanko brez inicializacije in stavka iterator

 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++; ) ) ) ) 

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

V tem primeru nismo uporabili stavka inicializacije in iteratorja.

Spremenljivka i je inicializirana nad zanko for in njena vrednost se poveča znotraj telesa zanke. Ta program je enak tistemu v primeru 1.

Podobno je pogoj tudi neobvezna izjava. Če pa ne uporabimo testnega izraza, zanka for ne preizkusi nobenega stanja in bo delovala večno (neskončna zanka).

Neskončno za zanko

Če je pogoj v zanki for vedno resničen, bo zanka za vedno delovala. To se imenuje neskončna zanka.

Primer 5: Neskončno za zanko

 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); ) ) ) ) 

Tu je i inicializiran na 1 in pogoj je i>0. Na vsaki ponovitvi povečamo vrednost i za 1, zato pogoj ne bo nikoli false. To bo povzročilo, da se zanka izvaja neskončno.

Neskončno zanko lahko ustvarimo tudi tako, da pogoj nadomestimo s praznim. Na primer

 for (;;) (// telo for zanke) 

ali

 for (inicializacija;; iterator) (// telo zanke for) 

Zanimive Članki...