I den här artikeln kommer vi att lära oss om för loop i C # och olika sätt att använda dem i ett program.
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 tittar vi på loop i C #.
C # för slinga
Den för sökord används för att skapa för loop i C #. Syntaxen för for loop är:
för (initialisering; villkor; iterator) (// body of for loop)
Hur fungerar loop?
- C # för slinga har tre uttalanden:
initialization
,condition
ochiterator
. - Den
initialization
satsen körs först och endast en gång. Här deklareras och initialiseras variabeln vanligtvis. - Därefter
condition
utvärderas den. Detcondition
är ett booleskt uttryck, dvs det returnerar antingentrue
ellerfalse
. - Om
condition
utvärderas tilltrue
:- Uttalandena inuti for loop körs.
- Därefter
iterator
körs uttalandet som vanligtvis ändrar värdet på den initialiserade variabeln. - Återigen
condition
utvärderas. - Processen fortsätter tills
condition
utvärderas tillfalse
.
- Om den
condition
utvärderas tillfalse
avslutas for-slingan.
för Loop Flowchart
Exempel 1: C # för Loop
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1; i<=5; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", 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
I detta program,
initialization
uttalande ärint i=1
condition
uttalande äri<=5
iterator
uttalande äri++
När programmet körs,
- Först deklareras variabeln i och initialiseras till 1.
- Därefter
i<=5
utvärderas villkoret ( ). - Eftersom villkoret återgår
true
, kör programmet sedan kroppen för for-slingan. Den skriver ut den angivna raden med Iteration 1 (Iteration betyder helt enkelt repetition). - Nu
i++
utvärderas iteratorn ( ). Detta ökar värdet i till 2. - Villkoret (
i<=5
) utvärderas igen och i slutet ökas värdet på i med 1. Villkoret utvärderas tilltrue
för de första fem gånger. - När värdet på i kommer att vara 6 och villkoret kommer att vara
false
, kommer därför slingan att avslutas.
Exempel 2: för loop för att beräkna summan av första n naturliga tal
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int n = 5,sum = 0; for (int i=1; i<=n; i++) ( // sum = sum + i; sum += i; ) Console.WriteLine("Sum of first (0) natural numbers = (1)", n, sum); ) ) )
När vi kör programmet blir resultatet:
Summan av de första 5 naturliga siffrorna = 15
Här initialiseras värdet på summan och n till 0 respektive 5. Iterationsvariabeln i initialiseras till 1 och ökas för varje iteration.
Inuti for-slingan ökas summan av i ie sum = sum + i
. For-slingan fortsätter tills i är mindre än eller lika med n (användarens ingång).
Låt oss se vad som händer i det givna programmet på varje iteration.
Ursprungligen var i = 1, summen = 0 och n = 3
För loopkörningsstegIteration | 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 när n = 5.
Flera uttryck inuti en for-loop
Vi kan också använda flera uttryck i en for-loop. Det betyder att vi kan ha mer än en initialisering och / eller iteratoruttalanden inom en for-loop. Låt oss se exemplet nedan.
Exempel 3: för loop med flera initialiserings- och iteratoruttryck
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=0, j=0; i+j<=5; i++, j++) ( Console.WriteLine("i = (0) and j = (1)", i,j); ) ) ) )
När vi kör programmet blir resultatet:
i = 0 och j = 0 i = 1 och j = 1 i = 2 och j = 2
I detta program har vi deklarerat och initialiserat två variabler: i och j i initialiseringsuttalandet.
Vi har också två uttryck i iteratordelen. Det betyder att både i och j ökas med 1 för varje iteration.
För loop utan initialisering och iteratoruttalanden
The initialization, condition and the iterator statement are optional in a for loop. It means we can run a for loop without these statements as well.
In such cases, for loop acts as a while loop. Let's see the example below.
Example 4: for loop without initialization and iterator statement
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int i = 1; for ( ; i<=5; ) ( Console.WriteLine("C# For Loop: Iteration (0)", i); i++; ) ) ) )
When we run the program, the output will be:
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
In this example, we haven't used the initialization and iterator statement.
The variable i is initialized above the for loop and its value is incremented inside the body of loop. This program is same as the one in Example 1.
På samma sätt är villkoret också ett frivilligt uttalande. Men om vi inte använder testuttryck testar inte for-slingan något tillstånd och körs för alltid (oändlig slinga).
Oändlig för loop
Om villkoret i en for-loop alltid är sant, kommer loop för alltid att fungera. Detta kallas oändlig för loop.
Exempel 5: Oändlig för loop
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1 ; i>0; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", i); ) ) ) )
Här initialiseras jag till 1 och villkoret är i>0
. Vid varje iteration ökar vi värdet på i med 1, så villkoret kommer aldrig att vara false
. Detta gör att slingan körs oändligt.
Vi kan också skapa en oändlig slinga genom att ersätta villkoret med ett tomt. Till exempel,
för (;;) (// body of for loop)
eller
för (initialisering;; iterator) (// body of for loop)