Bucles: for, while, foreach
C# tiene cuatro tipos de bucles. for es para repetir un número conocido de veces con un contador. while repite mientras una condición sea true. do-while es igual que while pero garantiza ejecutar el cuerpo al menos una vez (la condición se verifica al final). foreach es el más cómodo para colecciones: recorre cada elemento sin necesidad de índice ni verificación de límites, lo que hace el código más seguro y legible.
Para la mayoría de trabajo con colecciones (listas, arrays, diccionarios), el foreach es el preferido en C#. Su ventaja sobre el for con índice es que es imposible cometer errores de fuera de rango o confundir el índice. break sale del bucle inmediatamente; continue salta al inicio de la siguiente iteración.
En C# moderno, muchos casos de bucles se pueden reemplazar elegantemente con LINQ: .Where(), .Select(), .Sum() son más declarativos que bucles manuales.
// for clásico
for (int i = 0; i < 5; i++) {
Console.Write($"{i} "); // 0 1 2 3 4
}
// while
int contador = 0;
while (contador < 5) {
Console.Write($"{contador} ");
contador++;
}
// do-while (siempre ejecuta al menos una vez)
int n = 0;
do {
Console.WriteLine(n);
n++;
} while (n < 3);
// foreach - la más usada con colecciones
var frutas = new List<string> { "manzana", "pera", "uva" };
foreach (var fruta in frutas) {
Console.WriteLine(fruta.ToUpper());
}
// foreach con array
int[] numeros = { 1, 2, 3, 4, 5 };
foreach (int num in numeros) {
Console.Write($"{num * 2} "); // 2 4 6 8 10
}
// break y continue
for (int i = 0; i < 10; i++) {
if (i == 3) continue; // salta el 3
if (i == 7) break; // sale del bucle en 7
Console.Write($"{i} "); // 0 1 2 4 5 6
}
// Bucle infinito con break
while (true) {
string? input = Console.ReadLine();
if (input == "salir") break;
Console.WriteLine($"Dijiste: {input}");
}
Practica esta lección
Resuelve los ejercicios del curso de C# en la app, gratis y con corrección automática.
Empezar a practicar