I denne artikel vil vi lære om mens og gør … mens du løber i C #, hvordan du bruger dem og forskellen mellem dem.
Ved programmering er det ofte ønsket at udføre bestemte udsagnsspærre et bestemt antal gange. En mulig løsning vil være at skrive disse udsagn for det krævede antal gange. Antallet af gentagelser er muligvis ikke kendt på forhånd (under kompileringstid) eller måske stort nok (f.eks. 10000).
Den bedste løsning på et sådant problem er loop. Sløjfer bruges til programmering til gentagne gange at udføre en bestemt sæt udsagn, indtil en betingelse er opfyldt.
I denne artikel lærer vi at bruge mens sløjfer i C #.
C # mens sløjfe
Den mens søgeord bruges til at oprette while-løkke i C #. Syntaksen for mens loop er:
while (test-expression) (// body of while)
Hvordan mens loop fungerer?
- C # mens sløjfe består af en
test-expression
. - Hvis den
test-expression
vurderes tiltrue
,- udsagn inden i mens løkken udføres.
- efter udførelse
test-expression
evalueres den igen.
- Hvis den
test-expression
evalueres tilfalse
, afsluttes while-sløjfen.
mens loop Flowchart
Eksempel 1: mens Loop
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++; ) ) ) )
Når vi kører programmet, vil output være:
C # For Loop: Iteration 1 C # For Loop: Iteration 2 C # For Loop: Iteration 3 C # For Loop: Iteration 4 C # For Loop: Iteration 5
Oprindeligt er værdien af i 1.
Når programmet når while-loop-erklæringen,
- testudtrykket
i <=5
evalueres. Da jeg er 1 og1 <= 5
ertrue
, udfører den kroppen af while-sløjfen. Her udskrives linjen på skærmen med Iteration 1, og værdien på i øges med 1 til at blive 2. - Nu
i <=5
evalueres testudtrykket ( ) igen. Også denne gang vender udtrykket tilbagetrue
(2 <= 5), så linjen udskrives på skærmen, og værdien for i øges nu til 3 … - Dette går, og mens løkken udføres, indtil jeg bliver 6. På dette tidspunkt vil testudtrykket evaluere til
false
og dermed sløjfen afsluttes.
Eksempel 2: mens loop for at beregne summen af de første 5 naturlige tal
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); ) ) )
Når vi kører programmet, vil output være:
Sum = 15
Dette program beregner summen af de første 5 naturlige tal.
- Oprindeligt initialiseres værdien af summen til 0.
- For hver iteration opdateres summen til
sum+i
og værdien af i øges med 1. - Når værdien af i når 6,
i<=5
returnerer testudtrykket falsk, og sløjfen afsluttes.
Lad os se, hvad der sker i det givne program på hver iteration.
Oprindeligt var i = 1, sum = 0
Mens loop udførelse trinIteration | Værdien af i | jeg <= 5 | Værdien af summen |
---|---|---|---|
1 | 1 | sand | 0 + 1 = 1 |
2 | 2 | sand | 1 + 2 = 3 |
3 | 3 | sand | 3 + 3 = 6 |
4 | 4 | sand | 6 + 4 = 10 |
5 | 5 | sand | 10 + 5 = 15 |
6 | 6 | falsk | Loop slutter |
Så den endelige værdi af summen er 15.
C # gør … mens loop
Den gør og mens søgeord bruges til at skabe en gør … while-løkke. Det ligner en while-loop, men der er en stor forskel mellem dem.
I mens løkke kontrolleres tilstanden, før kroppen udføres. Det er nøjagtigt det modsatte i do … while loop, dvs. tilstanden kontrolleres, efter at kroppen er udført.
Dette er grunden til, at kroppen af do… while loop udføres mindst en gang uanset testudtrykket.
Syntaksen for do … while loop er:
do (// body of do while loop) while (test-expression);
Hvordan fungerer … mens loop fungerer?
- Body of do … mens loop udføres først.
- Derefter
test-expression
evalueres den. - Hvis den
test-expression
ertrue
, udføres sløjfekroppen. - Når det
test-expression
erfalse
, skal du gøre … mens sløjfen afsluttes.
gør … mens loop flowchart
Eksempel 3: gør … mens du løkker
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); ) ) )
Når vi kører programmet, vil output være:
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 (true) (// body of while loop)
Uendelig gør … mens sløjfe
do (// body of while loop) while (true);
Den uendelige løkke er nyttig, når vi har brug for en løkke til at køre, så længe vores program kører.
For eksempel, hvis dit program er en animation, skal du hele tiden køre det, indtil det stoppes. I sådanne tilfælde er en uendelig løkke nødvendig for at fortsætte med at køre animationen gentagne gange.