C # silmukalle (esimerkkien kanssa)

Tässä artikkelissa opitaan silmukasta C #: ssä ja erilaisista tavoista käyttää niitä ohjelmassa.

Ohjelmoinnissa halutaan usein suorittaa tietty lausejoukko tietyn määrän kertoja. Mahdollinen ratkaisu on kirjoittaa nämä lauseet tarvittavaan määrään kertoja. Toistojen lukumäärä ei kuitenkaan välttämättä ole tiedossa etukäteen (kokoamisajan aikana) tai ehkä riittävän suuri (esimerkiksi 10000).

Paras ratkaisu tällaiseen ongelmaan on silmukka. Silmukoita käytetään ohjelmoinnissa toistamaan tietty lause lause, kunnes jokin ehto täyttyy.

Tässä artikkelissa tarkastellaan silmukkaa C #: ssä.

C # silmukalle

Varten avainsanaa käytetään luomaan silmukka C #. Silmukan syntaksi on:

 for (alustus; ehto; iteraattori) (// silmukan runko) 

Kuinka silmukka toimii?

  1. C # silmukka on kolme lausumaa: initialization, conditionja iterator.
  2. initializationLauseke suoritetaan ensin ja vain kerran. Tässä muuttuja ilmoitetaan ja alustetaan yleensä.
  3. Sitten conditionarvioidaan. Se conditionon looginen lauseke, eli se palauttaa joko truetai false.
  4. Jos conditionarvioidaan true:
    1. For-silmukan sisällä olevat lauseet suoritetaan.
    2. Sitten suoritetaan iteratorkäsky, joka yleensä muuttaa alustetun muuttujan arvon.
    3. Jälleen conditionarvioidaan.
    4. Prosessi jatkuu, kunnes conditionarvioidaan false.
  5. Jos arvo conditionarvioidaan false, for-silmukka päättyy.

joukkueelle Loop Flowchart

Esimerkki 1: C # -silmukalle

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

Kun suoritamme ohjelmaa, tulos on:

 C # Silmukka: Iteraatio 1 C # Silmukka: Iteraatio 2 C # Silmukka: Iteraatio 3 C # Silmukka: Iteraatio 4 C # Silmukka: Iteraatio 5

Tässä ohjelmassa

  • initialization lausunto on int i=1
  • condition lausunto on i<=5
  • iterator lausunto on i++

Kun ohjelma on käynnissä,

  • Ensin muuttuja i ilmoitetaan ja alustetaan arvoon 1.
  • Sitten ehto ( i<=5) arvioidaan.
  • Koska ehto palaa true, ohjelma suorittaa sitten for-silmukan rungon. Se tulostaa annetun rivin iteraatiolla 1 (iteraatio tarkoittaa yksinkertaisesti toistoa).
  • Nyt iteraattori ( i++) arvioidaan. Tämä lisää arvon i arvoon 2.
  • Ehto ( i<=5) arvioidaan uudelleen ja lopuksi i: n arvoa korotetaan arvolla 1. Ehto arvioidaan trueensimmäisten 5 kertaa.
  • Kun i: n arvo on 6 ja ehto on false, silmukka päättyy.

Esimerkki 2: silmukalle ensimmäisen n luonnollisen luvun summan laskemiseksi

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

Kun suoritamme ohjelmaa, tulos on:

 Viiden ensimmäisen luonnollisen luvun summa = 15

Tässä summan ja n arvo alustetaan 0: ksi ja 5: ksi. Iteraatiomuuttuja i alustetaan arvoon 1 ja sitä lisätään jokaisella iteraatiolla.

For-silmukan sisällä summan arvoa lisätään i eli sum = sum + i. For-silmukka jatkuu, kunnes i on pienempi tai yhtä suuri kuin n (käyttäjän panos).

Katsotaanpa, mitä tietyssä ohjelmassa tapahtuu jokaisella iteraatiolla.

Aluksi i = 1, summa = 0 ja n = 3

Silmukan suoritusvaiheita varten
Toisto I: n arvo i <= 5 Summan arvo
1 1 totta 0 + 1 = 1
2 2 totta 1 + 2 = 3
3 3 totta 3 + 3 = 6
4 4 totta 6 + 4 = 10
5 5 totta 10 + 5 = 15
6 6 väärä Silmukka päättyy

Joten summan lopullinen arvo on 15, kun n = 5.

Useita lausekkeita for for -silmukan sisällä

Voimme myös käyttää useita lausekkeita for for -silmukan sisällä. Se tarkoittaa, että for-silmukassa voi olla useampi kuin yksi alustus- ja / tai iteraattorilause. Katsotaanpa alla oleva esimerkki.

Esimerkki 3: silmukalle, jossa on useita alustus- ja iteraattorilausekkeita

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

Kun suoritamme ohjelmaa, tulos on:

 i = 0 ja j = 0 i = 1 ja j = 1 i = 2 ja j = 2

Tässä ohjelmassa olemme ilmoittaneet ja alustaneet kaksi muuttujaa: i ja j alustamislausekkeessa.

Lisäksi iteraattoriosassa on kaksi lauseketta. Tämä tarkoittaa, että sekä i: tä että j: tä lisätään yhdellä kullakin iteraatiolla.

Silmukalle ilman alustusta ja iteraattorilauseita

Alustus, ehto ja iteraattorilauseke ovat valinnaisia ​​for-silmukassa. Se tarkoittaa, että voimme suorittaa for for -silmukan myös ilman näitä lausekkeita.

Tällaisissa tapauksissa silmukka toimii hetkellisenä silmukana. Katsotaanpa alla oleva esimerkki.

Esimerkki 4: silmukalle ilman alustusta ja iteraattorilausetta

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

Kun suoritamme ohjelmaa, tulos on:

 C # Silmukka: Iteraatio 1 C # Silmukka: Iteraatio 2 C # Silmukka: Iteraatio 3 C # Silmukka: Iteraatio 4 C # Silmukka: Iteraatio 5

Tässä esimerkissä emme ole käyttäneet alustus- ja iteraattorilauseketta.

Muuttuja i alustetaan for-silmukan yläpuolelle ja sen arvoa kasvatetaan silmukan rungon sisällä. Tämä ohjelma on sama kuin esimerkissä 1.

Vastaavasti ehto on myös valinnainen lause. Jos emme kuitenkaan käytä testilauseketta, for-silmukka ei testaa mitään ehtoja ja toimii ikuisesti (ääretön silmukka).

Ääretön silmukalle

Jos for-silmukan ehto on aina totta, silmukka toimii ikuisesti. Tätä kutsutaan loputtomaksi silmukalle.

Esimerkki 5: Ääretön silmukalle

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

Tässä i alustetaan arvoon 1 ja ehto on i>0. Jokaisella iteraatiolla kasvatamme i: n arvoa yhdellä, joten ehtoa ei koskaan tule false. Tämä saa silmukan suorittamaan loputtomasti.

Voimme myös luoda äärettömän silmukan korvaamalla ehdon tyhjällä. Esimerkiksi,

 for (;;) (// silmukan runko) 

tai

 for (alustus;; iteraattori) (// silmukan runko) 

Mielenkiintoisia artikkeleita...