C # while and do ... while loop (Esimerkkien kanssa)

Tässä artikkelissa opitaan while ja do… while -silmukassa C #: ssa, kuinka niitä käytetään ja kuinka niiden välillä on ero.

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 opitaan käyttämään silmukoita C #: ssä.

C # silmukka

Kun avainsanaa käytetään luomaan samalla silmukka C #. While-silmukan syntaksi on:

 while (testi-lauseke) (// while-kappale) 

Kuinka silmukka toimii?

  1. C # kun taas silmukka koostuu a: sta test-expression.
  2. Jos test-expressiontestataan jotta true,
    1. while-silmukan sisällä olevat lauseet suoritetaan.
    2. suorituksen jälkeen, test-expressionarvioidaan uudelleen.
  3. Jos test-expressionarvoksi arvioidaan false, while-silmukka päättyy.

kun taas silmukka vuokaavio

Esimerkki 1: Silmukka

 using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1; while (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

Aluksi i: n arvo on 1.

Kun ohjelma saavuttaa while-lauseen,

  • testilauseke i <=5arvioidaan. Koska i on 1 ja 1 <= 5on true, se suorittaa while-silmukan rungon. Tällöin viiva tulostetaan näytölle Iteration 1: llä, ja i: n arvoa kasvatetaan yhdellä tullakseen 2.
  • Nyt testilauseke ( i <=5) arvioidaan uudelleen. Myös tällä kertaa lauseke palaa true(2 <= 5), joten viiva tulostetaan näytölle ja i: n arvo kasvaa nyt arvoon 3…
  • Tämä jatkuu ja while-silmukka suoritetaan, kunnes minusta tulee 6. Tässä vaiheessa testi-lauseke arvioi falseja siten silmukka päättyy.

Esimerkki 2: while-silmukka viiden ensimmäisen luonnollisen luvun summan laskemiseksi

 using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1, sum=0; while (i<=5) ( sum += i; i++; ) Console.WriteLine("Sum = (0)", sum); ) ) ) 

Kun suoritamme ohjelmaa, tulos on:

 Summa = 15

Tämä ohjelma laskee viiden ensimmäisen luonnollisen luvun summan.

  • Alun perin summan arvo alustetaan arvoon 0.
  • Jokaisella iteraatiolla summan arvo päivitetään sum+iarvoon ja i: n arvoa lisätään 1: llä.
  • Kun i: n arvo saavuttaa 6, testilauseke i<=5palauttaa epätosi ja silmukka päättyy.

Katsotaanpa, mitä tietyssä ohjelmassa tapahtuu jokaisella iteraatiolla.

Aluksi i = 1, summa = 0

Vaikka silmukan toteutus vaiheet
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.

C # tehdä … silmukan aikana

Do ja kun avainsanaa käytetään luomaan do … taas silmukka. Se on samanlainen kuin while-silmukka, mutta niiden välillä on kuitenkin suuri ero.

In while -silmukassa kunto tarkistetaan ennen rungon suorittamista. Se on täsmälleen päinvastainen do do… while -silmukassa, eli kunto tarkistetaan rungon suorituksen jälkeen.

Siksi, do do … kun taas -silmukka suorittaa ainakin kerran testilausekkeesta riippumatta.

Syntaksi do… while -silmukalle on:

 do (// body of do while loop) while (testilauseke); 

Kuinka… vaikka silmukka toimii?

  1. Do … kun taas silmukka suoritetaan aluksi.
  2. Sitten test-expressionarvioidaan.
  3. Jos test-expressionon true, silmukan runko suoritetaan.
  4. Kun test-expressionon false, tee… kun silmukka päättyy.

tee … kun taas silmukka vuokaavio

Esimerkki 3: tee… silmukka

 using System; namespace Loop ( class DoWhileLoop ( public static void Main(string() args) ( int i = 1, n = 5, product; do ( product = n * i; Console.WriteLine("(0) * (1) = (2)", n, i, product); i++; ) while (i <= 10); ) ) ) 

Kun suoritamme ohjelmaa, tulos on:

 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50

As we can see, the above program prints the multiplication table of a number (5).

  • Initially, the value of i is 1. The program, then enters the body of do… while loop without checking any condition (as opposed to while loop).
  • Inside the body, product is calculated and printed on the screen. The value of i is then incremented to 2.
  • After the execution of the loop’s body, the test expression i <= 10 is evaluated. In total, the do… while loop will run for 10 times.
  • Finally, when the value of i is 11, the test-expression evaluates to false and hence terminates the loop.

Infinite while and do… while loop

If the test expression in the while and do… while loop never evaluates to false, the body of loop will run forever. Such loops are called infinite loop.

For example:

Infinite while loop

 while (tosi) (// while-silmukka) 

Ääretön tehdä … kun taas silmukka

 do (// silmukan body) while (true); 

Ääretön silmukka on hyödyllinen, kun tarvitsemme silmukan toimimaan niin kauan kuin ohjelmamme toimii.

Esimerkiksi, jos ohjelmasi on animaatio, sinun on suoritettava sitä jatkuvasti, kunnes se pysäytetään. Tällöin animaation jatkuva toistaminen edellyttää ääretöntä silmukkaa.

Mielenkiintoisia artikkeleita...