Šajā rakstā mēs uzzināsim par while un do… while ciklu C #, kā tos izmantot un atšķirību starp tiem.
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 iemācīsimies izmantot ciklus C #.
C # kamēr cilpa
Kamēr atslēgvārds tiek izmantots, lai izveidotu kamēr cilpa C #. Kaut cikla sintakse ir:
while (testa izteiksme) (// ķermeņa laiks)
Kā darbojas cilpa?
- C # kamēr cilpa sastāv no a
test-expression
. - Ja
test-expression
tiek novērtēts līdztrue
,- paziņojumi, kamēr cikls tiek izpildīts.
- pēc izpildes
test-expression
tiek atkārtoti novērtēts.
- Ja
test-expression
tiek novērtēts līdzfalse
, cilpa while tiek pārtraukta.
kamēr cilpa Blokshēma
1. piemērs: kamēr cilpa
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++; ) ) ) )
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
Sākotnēji i vērtība ir 1.
Kad programma sasniedz paziņojumu while ciklu,
i <=5
tiek vērtēta testa izteiksme . Tā kā i ir 1 un1 <= 5
irtrue
, tas izpilda kamēr cilpa ķermeni. Šeit līnija tiek drukāta uz ekrāna ar 1. atkārtojumu, un i vērtība tiek palielināta par 1, lai kļūtu par 2.- Tagad testa izteiksme (
i <=5
) tiek atkārtoti novērtēta. Arī šoreiz izteiksme atgriežastrue
(2 <= 5), tāpēc līnija tiek drukāta uz ekrāna, un i vērtība tagad tiek palielināta līdz 3 … - Tas notiek, kamēr cilpa tiek izpildīta, līdz es kļūstu par 6. Šajā brīdī testa izteiksme novērtēs
false
un tādējādi cilpa beigsies.
2. piemērs: while cikls, lai aprēķinātu pirmo 5 dabisko skaitļu summu
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); ) ) )
Kad mēs palaidīsim programmu, izeja būs:
Summa = 15
Šī programma aprēķina pirmo 5 dabisko skaitļu summu.
- Sākumā summas vērtība tiek inicializēta līdz 0.
- Katrā atkārtojumā summas vērtība tiek atjaunināta līdz
sum+i
un i vērtība tiek palielināta par 1. - Kad i vērtība sasniedz 6, testa izteiksme
i<=5
atgriezīsies nepatiesa un cilpa beigsies.
Apskatīsim, kas notiek dotajā programmā katrā atkārtojumā.
Sākumā i = 1, summa = 0
Kamēr cilpas izpilde notiekAtkā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.
C # darīt … kamēr cilpa
Darīt un kamēr atslēgvārds tiek izmantots, lai izveidotu darīt … kamēr cilpa. Tas ir līdzīgs brīža ciklam, tomēr starp tiem ir liela atšķirība.
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?
- The body of do… while loop is executed at first.
- Then the
test-expression
is evaluated. - If the
test-expression
istrue
, the body of loop is executed. - When the
test-expression
isfalse
, 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 (patiess) (// body of while cilpa)
Bezgalīgs darīt … kamēr cilpa
do (// body of while loop) kamēr (patiess);
Bezgalīgā cilpa ir noderīga, ja mums ir nepieciešama cilpa, lai tā darbotos tik ilgi, kamēr darbojas mūsu programma.
Piemēram, ja jūsu programma ir animācija, tā būs nepārtraukti jāpalaiž, līdz tā tiek pārtraukta. Šādos gadījumos animācijas atkārtota palaišana ir nepieciešama bezgalīga cilpa.