I den här artikeln kommer vi att lära oss om medan och göra … medan loop i C #, hur man använder dem och skillnaden mellan dem.
Vid programmering är det ofta önskvärt att utföra vissa block av uttalanden för ett visst antal gånger. En möjlig lösning kommer att vara att skriva dessa uttalanden för det antal gånger som krävs. Antalet repetitioner kanske dock inte är känt i förväg (under kompileringstiden) eller kanske tillräckligt stort (säg 10000).
Den bästa lösningen på ett sådant problem är loop. Slingor används vid programmering för att upprepade gånger utföra ett visst påstående tills några villkor är uppfyllda.
I den här artikeln lär vi oss att använda medan loopar i C #.
C # medan slinga
Den medan nyckelordet används för att skapa medan loop i C #. Syntaxen för while loop är:
while (testuttryck) (// body of while)
Hur medan loop fungerar?
- C # medan slingan består av en
test-expression
. - Om den
test-expression
utvärderas tilltrue
,- uttalanden inuti while-slingan körs.
- efter utförandet
test-expression
utvärderas den igen.
- Om
test-expression
utvärderas tillfalse
avslutas while-slingan.
medan loop Flödesschema
Exempel 1: while 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ör programmet blir resultatet:
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
Ursprungligen är värdet på i 1.
När programmet når while loop-uttalandet,
- testuttrycket
i <=5
utvärderas. Eftersom jag är 1 och1 <= 5
ärtrue
exekverar den kroppen för stundslingan. Här skrivs raden ut på skärmen med Iteration 1 och värdet på i ökas med 1 till 2. - Nu
i <=5
utvärderas testuttrycket ( ) igen. Även denna gång återgår uttryckettrue
(2 <= 5), så raden skrivs ut på skärmen och värdet på i ökas nu till 3 … - Detta går och medan slingan körs tills jag blir 6. Vid denna tidpunkt kommer testuttrycket att utvärderas till
false
och därmed slingan avslutas.
Exempel 2: medan loop för att beräkna summan av de första 5 naturliga siffrorna
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ör programmet blir resultatet:
Summa = 15
Detta program beräknar summan av de första 5 naturliga siffrorna.
- Initialt initialiseras summan till 0.
- Vid varje iteration uppdateras summan till
sum+i
och värdet på i ökas med 1. - När värdet på i når 6 kommer testuttrycket
i<=5
att returnera falskt och slingan avslutas.
Låt oss se vad som händer i det givna programmet på varje iteration.
Ursprungligen var i = 1, summan = 0
Medan loop exekveringsstegIteration | Värdet på i | jag <= 5 | Summan |
---|---|---|---|
1 | 1 | Sann | 0 + 1 = 1 |
2 | 2 | Sann | 1 + 2 = 3 |
3 | 3 | Sann | 3 + 3 = 6 |
4 | 4 | Sann | 6 + 4 = 10 |
5 | 5 | Sann | 10 + 5 = 15 |
6 | 6 | falsk | Loop avslutas |
Så det slutliga värdet av summan blir 15.
C # gör … medan loop
Den gör och när nyckelordet används för att skapa en gör … while-slinga. Det liknar en stundslinga, men det finns en stor skillnad mellan dem.
Under slingan kontrolleras tillståndet innan kroppen körs. Det är exakt motsatt i do … while loop, dvs. villkor kontrolleras efter att kroppen har exekverats.
Det är därför kroppen för att göra … medan slingan kommer att köras minst en gång oavsett testuttrycket.
Syntaxen för do … while loop är:
do (// body of do while loop) while (test-expression);
Hur fungerar … medan loop fungerar?
- Body of do … medan loop utförs först.
- Sedan
test-expression
utvärderas. - Om den
test-expression
ärtrue
, körs kroppen av slingan. - När
test-expression
ärfalse
, gör … medan slingan avslutas.
gör … medan loop Flödesschema
Exempel 3: gör … medan slinga
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ör programmet blir resultatet:
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)
Oändlig gör … medan slinga
do (// body of while loop) while (true);
Den oändliga slingan är användbar när vi behöver en slinga för att köra så länge som vårt program körs.
Om ditt program till exempel är en animation måste du ständigt köra det tills det stoppas. I sådana fall är en oändlig slinga nödvändig för att fortsätta att köra animationen upprepade gånger.