C # while and do ... while loop (su pavyzdžiais)

Šiame straipsnyje mes sužinosime apie „while“ ir „do while…“ ciklą C #, kaip juos naudoti ir kaip skiriasi.

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 išmoksime naudoti „C“ ciklo metu.

C # o kilpa

While“ raktinis žodis naudojamas kuriant „loop“ C #. „Loop“ sintaksė yra:

 while (testo išraiška) (// kurio nors kūno dalis) 

Kaip veikia kilpa?

  1. C # o kilpa susideda iš a test-expression.
  2. Jei test-expressionįvertinama true,
    1. vykdomi sakiniai „while“ ciklo viduje.
    2. po įvykdymo test-expressionvėl įvertinamas.
  3. Jei test-expressionįvertinama iki false, „loop“ baigiasi.

o kilpa Blowchart

1 pavyzdys: o kilpa

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

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

Iš pradžių i reikšmė yra 1.

Kai programa pasiekia „while loop“ sakinį,

  • įvertinama testo išraiška i <=5. Kadangi i yra 1 ir 1 <= 5yra true, jis vykdo „while“ kilpos kūną. Čia linija atspausdinama ekrane su Iteracija 1, o i reikšmė padidinama 1, kad būtų 2.
  • Dabar bandomoji išraiška ( i <=5) vėl įvertinta. Šį kartą išraiška grįžta true(2 <= 5), todėl eilutė atspausdinama ekrane, o i reikšmė dabar padidinama iki 3 …
  • Tai vyksta ir „while“ ciklas vykdomas tol, kol i tampa 6. Šiuo metu testo išraiška įvertins falseir tokiu būdu kilpa baigsis.

2 pavyzdys: while loop apskaičiuoti pirmųjų 5 natūralių skaičių sumą

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

Kai vykdysime programą, išvestis bus:

 Suma = 15

Ši programa apskaičiuoja pirmųjų 5 natūralių skaičių sumą.

  • Iš pradžių sumos vertė inicijuojama iki 0.
  • Kiekvienoje iteracijoje sumos vertė atnaujinama sum+iir i vertė didinama 1.
  • Kai i reikšmė pasieks 6, bandomoji išraiška i<=5bus klaidinga ir ciklas baigsis.

Pažiūrėkime, kas vyksta pateiktoje programoje kiekvienoje iteracijoje.

Iš pradžių i = 1, suma = 0

Nors kilpos vykdymo žingsniai
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.

C # daryti … o kilpa

Do and while“ raktinis žodis naudojamas „do… while“ kilpai sukurti. Tai panašu į tam tikrą laiką, tačiau tarp jų yra didelis skirtumas.

In while loop, the condition is checked before the body is executed. It is the exact opposite in do… while loop, i.e. condition is checked after the body is executed.

This is why, the body of do… while loop will execute at least once irrespective to the test-expression.

The syntax for do… while loop is:

 do ( // body of do while loop ) while (test-expression); 

How do… while loop works?

  1. The body of do… while loop is executed at first.
  2. Then the test-expression is evaluated.
  3. If the test-expression is true, the body of loop is executed.
  4. When the test-expression is false, do… while loop terminates.

do… while loop Flowchart

Example 3: do… while loop

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

When we run the program, the output will be:

 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 (tiesa) (// kilpos „body“) 

Begalinis padaryti … o kilpa

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

Begalinė kilpa yra naudinga, kai mums reikia, kad ciklas veiktų tol, kol vykdoma mūsų programa.

Pavyzdžiui, jei jūsų programa yra animacija, turėsite ją nuolat paleisti, kol ji bus sustabdyta. Tokiais atvejais, norint pakartotinai paleisti animaciją, būtina begalinė kilpa.

Įdomios straipsniai...