In dit artikel zullen we leren over for-loop in C # en verschillende manieren om ze in een programma te gebruiken.
Bij het programmeren is het vaak gewenst om een bepaald blok instructies een gespecificeerd aantal keren uit te voeren. Een mogelijke oplossing is om die instructies het vereiste aantal keren in te typen. Het is echter mogelijk dat het aantal herhalingen niet van tevoren bekend is (tijdens het compileren) of misschien groot genoeg is (bijvoorbeeld 10.000).
De beste oplossing voor een dergelijk probleem is lus. Lussen worden gebruikt bij het programmeren om herhaaldelijk een bepaald blok met instructies uit te voeren totdat aan een bepaalde voorwaarde is voldaan.
In dit artikel kijken we naar for-loop in C #.
C # voor lus
Het trefwoord for wordt gebruikt om een for-lus in C # te maken. De syntaxis voor for-lus is:
for (initialisatie; voorwaarde; iterator) (// body van for-lus)
Hoe werkt for loop?
- C # for-lus heeft drie verklaringen:
initialization
,condition
eniterator
. - De
initialization
instructie wordt eerst en slechts één keer uitgevoerd. Hier wordt de variabele meestal gedeclareerd en geïnitialiseerd. - Vervolgens
condition
wordt geëvalueerd. Hetcondition
is een booleaanse uitdrukking, dwz het retourneerttrue
offalse
. - Als het
condition
wordt geëvalueerd naartrue
:- De instructies in de for-lus worden uitgevoerd.
- Vervolgens wordt de
iterator
instructie uitgevoerd die meestal de waarde van de geïnitialiseerde variabele verandert. - Opnieuw
condition
wordt geëvalueerd. - Het proces gaat door totdat het
condition
wordt geëvalueerd opfalse
.
- Als de
condition
wordt geëvalueerd naarfalse
, wordt de for-lus beëindigd.
voor Loop Flowchart
Voorbeeld 1: C # voor lus
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); ) ) ) )
Wanneer we het programma uitvoeren, is de uitvoer:
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 dit programma
initialization
verklaring isint i=1
condition
verklaring isi<=5
iterator
verklaring isi++
Als het programma draait,
- Eerst wordt de variabele i gedeclareerd en geïnitialiseerd op 1.
- Vervolgens wordt de voorwaarde (
i<=5
) geëvalueerd. - Aangezien de voorwaarde terugkeert
true
, voert het programma vervolgens de body van de for-lus uit. Het drukt de gegeven regel af met Iteratie 1 (Iteratie betekent gewoon herhaling). - Nu wordt de iterator (
i++
) geëvalueerd. Dit verhoogt de waarde van i tot 2. - De conditie (
i<=5
) wordt opnieuw geëvalueerd en aan het einde wordt de waarde van i verhoogd met 1. De conditie zaltrue
de eerste 5 keer evalueren tot . - Wanneer de waarde van i 6 zal zijn en de conditie zal zijn
false
, dan zal de lus eindigen.
Voorbeeld 2: for-lus om de som van de eerste n natuurlijke getallen te berekenen
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); ) ) )
Wanneer we het programma uitvoeren, is de uitvoer:
Som van eerste 5 natuurlijke getallen = 15
Hier wordt de waarde van som en n geïnitialiseerd op respectievelijk 0 en 5. De iteratievariabele i wordt geïnitialiseerd op 1 en bij elke iteratie verhoogd.
Binnen de for-lus wordt de waarde van de som verhoogd met i ie sum = sum + i
. De for-lus gaat door totdat i kleiner is dan of gelijk is aan n (invoer van de gebruiker).
Laten we eens kijken wat er bij elke iteratie in het gegeven programma gebeurt.
Aanvankelijk i = 1, som = 0 en n = 3
Voor loop-uitvoeringsstappenIteratie | Waarde van i | ik <= 5 | Waarde van de som |
---|---|---|---|
1 | 1 | waar | 0 + 1 = 1 |
2 | 2 | waar | 1 + 2 = 3 |
3 | 3 | waar | 3 + 3 = 6 |
4 | 4 | waar | 6 + 4 = 10 |
5 | 5 | waar | 10 + 5 = 15 |
6 | 6 | false | Loop eindigt |
De uiteindelijke waarde van som is dus 15 als n = 5.
Meerdere uitdrukkingen binnen een for-lus
We kunnen ook meerdere uitdrukkingen gebruiken binnen een for-lus. Het betekent dat we meer dan één initialisatie- en / of iteratorinstructies kunnen hebben binnen een for-lus. Laten we het onderstaande voorbeeld bekijken.
Voorbeeld 3: for loop met meerdere initialisatie- en iterator-expressies
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); ) ) ) )
Wanneer we het programma uitvoeren, is de uitvoer:
i = 0 en j = 0 i = 1 en j = 1 i = 2 en j = 2
In dit programma hebben we twee variabelen gedeclareerd en geïnitialiseerd: i en j in de initialisatie-instructie.
We hebben ook twee uitdrukkingen in het iteratorgedeelte. Dat betekent dat zowel i als j bij elke iteratie met 1 worden verhoogd.
For-lus zonder initialisatie en iterator-instructies
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.
Evenzo is de voorwaarde ook een optionele verklaring. Als we echter geen testexpressie gebruiken, zal de for-lus geen enkele voorwaarde testen en zal deze voor altijd worden uitgevoerd (oneindige lus).
Oneindig voor lus
Als de voorwaarde in een for-lus altijd waar is, zal de for-lus voor altijd worden uitgevoerd. Dit wordt oneindig voor lus genoemd.
Voorbeeld 5: Oneindige lus
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); ) ) ) )
Hier wordt ik geïnitialiseerd op 1 en de voorwaarde is i>0
. Bij elke iteratie verhogen we de waarde van i met 1, dus de conditie zal dat nooit zijn false
. Dit zorgt ervoor dat de lus oneindig wordt uitgevoerd.
We kunnen ook een oneindige lus maken door de voorwaarde te vervangen door een spatie. Bijvoorbeeld,
for (;;) (// body van for-lus)
of
for (initialisatie;; iterator) (// body van for-lus)