Beheers geneste lussen in C#:For, While en Do-While uitgelegd
Een lus binnen een andere lus wordt geneste lus genoemd. Zo ziet een geneste lus eruit:
Outer-Loop
{
// body of outer-loop
Inner-Loop
{
// body of inner-loop
}
... ... ...
}
Zoals je kunt zien, de buitenste lus omsluit de binnenste lus . De binnenste lus maakt deel uit van de buitenste lus en moet beginnen en eindigen binnen het lichaam van de buitenste lus.
Bij elke iteratie van de buitenste lus wordt de binnenste lus volledig uitgevoerd.
Genest voor lus
Een for-lus binnen een andere for-lus wordt een geneste for-lus genoemd.
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:Genest voor 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 uitvoer:
Outer Loop runs 5 times Inner Loop runs 25 times
In dit programma loopt de buitenste lus 5 keer. Elke keer dat de buitenste lus loopt, loopt de binnenste lus 5 keer, waardoor deze in totaal 25 keer loopt.
Voorbeeld 2:genest voor lus-naar-afdrukpatroon
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 uitvoer:
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 wordt een geneste while-lus genoemd.
Bijvoorbeeld:
while (condition-1)
{
// body of outer while loop
while (condition-2)
{
// body of inner while loop
}
// body of outer while loop
}
Voorbeeld 3:Genest tijdens 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 uitvoer:
(0,0) (0,1) (1,0) (1,1)
Geneste do-while-lus
Een do-while-lus binnen een andere do-while-lus wordt geneste do-while-lus genoemd.
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 uitvoer:
(0,0) (0,1) (1,0) (1,1)
Verschillende binnenste en buitenste 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 binnen- en buitenlussen
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 uitvoer:
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 soorten lussen binnen een lus gebruiken.
C Taal
- GCC Compiler downloaden en installeren in C voor Windows-pc
- Visual Studio voor C# downloaden en installeren in Windows
- C# ternair (? :) Operator
- C# - Methoden
- C# break-instructie
- C++-gegevenstypen
- Beheersing van constante pointers en pointers naar constanten in C
- std::lijst in C++ met Voorbeeld
- C Multidimensionale arrays
- Polymorfisme in C++
- C++ Type-conversie