I denne artikel lærer vi om for loop i C # og forskellige måder at bruge dem i et program.
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 ser vi på loop i C #.
C # for løkke
Den for søgeord bruges til at oprette for-løkke i C #. Syntaksen for for loop er:
til (initialisering; betingelse; iterator) (// body of for loop)
Hvordan fungerer loop?
- C # for-løkke har tre udsagn:
initialization
,condition
ogiterator
. - Den
initialization
sætningen udføres ved første og eneste gang. Her erklæres og initialiseres variablen normalt. - Derefter
condition
evalueres den. Detcondition
er et boolsk udtryk, dvs. det returnerer ententrue
ellerfalse
. - Hvis den
condition
vurderes tiltrue
:- Sætningerne inde i for-sløjfen udføres.
- Derefter
iterator
udføres udsagnet, som normalt ændrer værdien af den initialiserede variabel. - Igen
condition
evalueres. - Processen fortsætter, indtil den
condition
evalueres tilfalse
.
- Hvis den
condition
vurderes tilfalse
, slutter for-sløjfen.
til Loop Flowchart
Eksempel 1: C # for 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ø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
I dette program
initialization
erklæring erint i=1
condition
erklæring eri<=5
iterator
erklæring eri++
Når programmet kører,
- For det første erklæres variablen i og initialiseres til 1.
- Derefter
i<=5
vurderes tilstanden ( ). - Da tilstanden vender tilbage
true
, udfører programmet derefter kroppen af for-sløjfen. Den udskriver den givne linje med Iteration 1 (Iteration betyder simpelthen gentagelse). - Nu
i++
vurderes iteratoren ( ). Dette øger værdien af i til 2. - Betingelsen (
i<=5
) evalueres igen, og i slutningen forøges værdien af i med 1. Betingelsen evalueres tiltrue
for de første 5 gange. - Når værdien af i vil være 6, og betingelsen vil være
false
, vil sløjfen derfor ende.
Eksempel 2: for loop til beregning af summen af de første n naturlige 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ører programmet, vil output være:
Summen af de første 5 naturlige tal = 15
Her initialiseres værdien af sum og n til henholdsvis 0 og 5. Iterationsvariablen i initialiseres til 1 og forøges på hver iteration.
Inde i for-løkken øges værdien af summen med i ie sum = sum + i
. For-sløjfen fortsætter, indtil i er mindre end eller lig med n (brugerens input).
Lad os se, hvad der sker i det givne program på hver iteration.
Oprindeligt var i = 1, sum = 0 og n = 3
For løbekørselstrinIteration | 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 vil være 15, når n = 5.
Flere udtryk inde i en for loop
Vi kan også bruge flere udtryk i en for loop. Det betyder, at vi kan have mere end én initialiserings- og / eller iteratorudsagn inden for en for-loop. Lad os se eksemplet nedenfor.
Eksempel 3: til loop med flere initialiserings- og iteratorudtryk
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ører programmet, vil output være:
i = 0 og j = 0 i = 1 og j = 1 i = 2 og j = 2
I dette program har vi deklareret og initialiseret to variabler: i og j i initialiseringserklæringen.
Vi har også to udtryk i iterator-delen. Det betyder, at både i og j øges med 1 på hver iteration.
Til loop uden initialisering og iterator-udsagn
Initialiseringen, tilstanden og iteratorerklæringen er valgfri i en for-loop. Det betyder, at vi også kan køre en for loop uden disse udsagn.
I sådanne tilfælde fungerer for loop som en while-loop. Lad os se eksemplet nedenfor.
Eksempel 4: til loop uden initialisering og iterator-sætning
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++; ) ) ) )
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
I dette eksempel har vi ikke brugt initialiserings- og iterator-erklæringen.
Variablen i initialiseres over for-sløjfen, og dens værdi forøges inde i sløjfekroppen. Dette program er det samme som i eksempel 1.
Tilsvarende er betingelsen også en valgfri erklæring. Men hvis vi ikke bruger testudtryk, tester for-sløjfen ikke nogen betingelse og kører for evigt (uendelig løkke).
Uendelig for løkke
Hvis betingelsen i en for-løkke altid er sand, vil løkken køre for evigt. Dette kaldes uendelig for loop.
Eksempel 5: Infinite for 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); ) ) ) )
Her initialiseres jeg til 1, og betingelsen er i>0
. For hver iteration øger vi værdien af i med 1, så tilstanden bliver aldrig false
. Dette vil få løkken til at udføres uendeligt.
Vi kan også oprette en uendelig løkke ved at erstatte betingelsen med et tomt. For eksempel,
for (;;) (// body of for loop)
eller
til (initialisering;; iterator) (// body of for loop)