C # medan och gör ... medan slinga (med exempel)

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?

  1. C # medan slingan består av en test-expression.
  2. Om den test-expressionutvärderas till true,
    1. uttalanden inuti while-slingan körs.
    2. efter utförandet test-expressionutvärderas den igen.
  3. Om test-expressionutvärderas till falseavslutas 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 <=5utvärderas. Eftersom jag är 1 och 1 <= 5är trueexekverar 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 <=5utvärderas testuttrycket ( ) igen. Även denna gång återgår uttrycket true(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 falseoch 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+ioch värdet på i ökas med 1.
  • När värdet på i når 6 kommer testuttrycket i<=5att 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 exekveringssteg
Iteration 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?

  1. Body of do … medan loop utförs först.
  2. Sedan test-expressionutvärderas.
  3. Om den test-expressionär true, körs kroppen av slingan.
  4. När test-expressionär false, 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.

Intressanta artiklar...