Geneste Lussen in C# Beheersen: For, While en Do-While Uitgelegd
Een lus binnen een andere lus heet een geneste lus. Zo ziet een geneste lus eruit:
Outer-Loop { // body of outer-loop Inner-Loop { // body of inner-loop } ... ... ... }
Zoals u ziet, omhult de outer loop de inner loop. De inner loop is onderdeel van de outer loop en moet beginnen en eindigen binnen de body van de outer loop.
Bij elke iteratie van de outer loop, wordt de inner loop volledig uitgevoerd.
Geneste for-lus
Een for-lus binnen een andere for-lus heet een geneste for-lus.
Bijvoorbeeld:
for (int i=0; i<5; i++) { // body of outer for loop for (int j=0; j<5; j++) { // body of inner for loop } // body of outer for loop }
Voorbeeld 1: Geneste for-lus
using System; namespace Loop { class NestedForLoop { public static void Main(string[] args) { int outerLoop = 0, innerLoop = 0; for (int i=1; i<=5; i++) { outerLoop ++; for (int j=1; j<=5; j++) { innerLoop++; } } Console.WriteLine("Outer Loop runs {0} times", outerLoop); Console.WriteLine("Inner Loop runs {0} times", innerLoop); } } }
Wanneer we het programma uitvoeren, is de output:
Outer Loop runs 5 times Inner Loop runs 25 times
In dit programma draait de outer loop 5 keer. Elke keer dat de outer loop draait, draait de inner loop 5 keer, wat erin resulteert dat het in totaal 25 keer draait.
Voorbeeld 2: Geneste for-lus om patroon te printen
using System; namespace Loop { class NestedForLoop { public static void Main(string[] args) { for (int i=1; i<=5; i++) { for (int j=1; j<=i; j++) { Console.Write(j + " "); } Console.WriteLine(); } } } }
Wanneer we het programma uitvoeren, is de output:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Geneste while-lus
Een while-lus binnen een andere while-lus heet een geneste while-lus.
Bijvoorbeeld:
while (condition-1) { // body of outer while loop while (condition-2) { // body of inner while loop } // body of outer while loop }
Voorbeeld 3: Geneste while-lus
using System; namespace Loop { class NestedWhileLoop { public static void Main(string[] args) { int i=0; while (i<2) { int j=0; while (j<2) { Console.Write("({0},{1}) ", i,j); j++; } i++; Console.WriteLine(); } } } }
Wanneer we het programma uitvoeren, is de output:
(0,0) (0,1) (1,0) (1,1)
Geneste do-while-lus
Een do-while-lus binnen een andere do-while-lus heet een geneste do-while-lus.
Bijvoorbeeld:
do { // body of outer while loop do { // body of inner while loop } while (condition-2); // body of outer while loop } while (condition-1);
Voorbeeld 4: Geneste do-while-lus
using System; namespace Loop { class NestedWhileLoop { public static void Main(string[] args) { int i=0; do { int j=0; do { Console.Write("({0},{1}) ", i,j); j++; } while (j<2); i++; Console.WriteLine(); } while (i<2); } } }
Wanneer we het programma uitvoeren, is de output:
(0,0) (0,1) (1,0) (1,1)
Verschillende inner en outer geneste lussen
Het is niet verplicht om hetzelfde type lus te nesten. We kunnen een for-lus in een while-lus plaatsen of een do-while-lus in een for-lus.
Voorbeeld 5: C# Geneste Lus: Verschillende inner en outer lussen
using System; namespace Loop { class NestedLoop { public static void Main(string[] args) { int i=1; while (i<=5) { for (int j=1; j<=i; j++) { Console.Write(i + " "); } Console.WriteLine(); i++; } } } }
Wanneer we het programma uitvoeren, is de output:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
In het bovenstaande programma wordt een for-lus binnen een while-lus geplaatst. We kunnen verschillende typen lussen binnen een lus gebruiken.
C Taal
- C++ Char Datatype: Declaratie, ASCII en Conversie‑Technieken
- C# Inheritance: Concepten, Types en Praktische Code
- Uitgebreide Gids voor C++ Operators: Types, Gebruik en Best Practices
- C# Windows Forms Ontwikkeling: Een Hands-On Tutorial
- C++ For‑Lussen Uitgelegd: Syntaxis, Werking en Praktische Voorbeelden
- C++ Data Type Modifiers Begrijpen: signed, unsigned, long, short
- C# Reflectie onder de knie: runtime-typeontdekking en dynamische programmering
- C# Classes & Objects: Fundamenten voor Robuuste OOP
- C# type conversie: implicit, explicit, Parse en Convert methodes
- C++ break statement: loop controle onder de knie
- Recursie in C: Best Practices & Exit Condities