Los bucles while y do-while son estructuras de control en C# que permiten repetir la ejecución de un bloque de código mientras se cumpla una condición específica.
A diferencia del bucle for
, que se utiliza cuando se conoce el número exacto de iteraciones, los bucles while
y do-while
son ideales cuando el número de iteraciones es desconocido (porque depende de una condición de salida).
Si quieres aprender más sobre Bucles
consulta el Curso de Introducción a la Programación leer más
Bucle WHILE
El bucle while
repite un bloque de código mientras una condición dada sea true
. La sintaxis básica de un bucle while
en C# es la siguiente:
while (condicion)
{
// Código a ejecutar mientras la condición sea verdadera
}
El bloque de código se ejecuta repetidamente siempre que la condición especificada sea true
. Es importante tener cuidado con la condición para evitar bucles infinitos.
Veámoslo con un ejemplo,
int contador = 0;
while (contador < 5)
{
Console.WriteLine(contador);
contador++;
}
En este ejemplo, el bucle while
imprimirá los números del 0 al 4, ya que la condición contador < 5
se evalúa como true
durante las primeras cinco iteraciones.
Bucle DO-WHILE
El bucle do-while
es similar al bucle while
, pero garantiza que el bloque de código se ejecute al menos una vez, incluso si la condición es false
desde el principio. La sintaxis básica es la siguiente:
do
{
// Código a ejecutar al menos una vez
} while (condicion);
El bloque de código se ejecuta primero y luego se verifica la condición. Si la condición es true
, el bloque se ejecuta nuevamente; si es false
, el bucle termina.
Veámoslo con un ejemplo
int contador = 0;
do
{
Console.WriteLine(contador);
contador++;
} while (contador < 5);
Este bucle do-while
producirá la misma salida que el bucle while
del ejemplo anterior.
Diferencias entre While y Do-While
- El bucle
while
verifica la condición antes de cada iteración, mientras que el bucledo-while
verifica la condición después de cada iteración. - El bucle
do-while
garantiza al menos una ejecución del bloque de código, mientras que el buclewhile
puede no ejecutar el bloque si la condición esfalse
desde el principio.
Ejemplos prácticos
Contar hasta 10
En este ejemplo, se utiliza un bucle while
para contar del 1 al 10 e imprimir cada número.
int contador = 1;
while (contador <= 10)
{
Console.WriteLine(contador);
contador++; // Incrementa el contador en 1
}
Este bucle while
se ejecuta mientras el valor de contador
sea menor o igual a 10. En cada iteración, se imprime el valor actual de contador
y luego se incrementa en 1.
Sumar números positivos ingresados por el usuario
En este ejemplo, se utiliza un bucle while
para sumar números positivos ingresados por el usuario hasta que se ingrese un número negativo.
int suma = 0;
int numero;
Console.WriteLine("Ingrese un número positivo (un número negativo para terminar): ");
numero = int.Parse(Console.ReadLine());
while (numero >= 0)
{
suma += numero; // Suma el número ingresado a la variable 'suma'
Console.WriteLine("Ingrese otro número positivo (un número negativo para terminar): ");
numero = int.Parse(Console.ReadLine());
}
Console.WriteLine($"La suma total de los números positivos es: {suma}");
Este bucle while
se ejecuta mientras el usuario ingrese números positivos. Cada número se suma a la variable suma
. El bucle termina cuando se ingresa un número negativo.
Buscar un número en una lista
En este ejemplo, se utiliza un bucle while
para buscar un número específico en una lista de números.
List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int buscado = 7;
int index = 0;
bool encontrado = false;
while (index < numeros.Count && !encontrado)
{
if (numeros[index] == buscado)
{
encontrado = true; // Marca que el número ha sido encontrado
Console.WriteLine($"Número {buscado} encontrado en la posición {index}");
}
index++; // Incrementa el índice
}
if (!encontrado)
{
Console.WriteLine($"Número {buscado} no encontrado en la lista");
}
Este bucle while
se ejecuta mientras no se haya encontrado el número buscado y el índice esté dentro del rango de la lista.
Si el número es encontrado, se marca como encontrado y se imprime su posición. Si el bucle termina sin encontrar el número, se indica que no se encontró en la lista.
Validación de entrada del usuario
En este ejemplo, se utiliza un bucle do-while para solicitar al usuario que ingrese “s” o “n” para confirmar si desea continuar.
string respuesta;
do
{
Console.WriteLine("¿Desea continuar? (s/n): ");
respuesta = Console.ReadLine().ToLower();
} while (respuesta != "s" && respuesta != "n");
Console.WriteLine("Programa terminado.");
Este bucle do-while
solicita al usuario que ingrese “s” o “n” para confirmar si desea continuar. El bloque de código se ejecuta al menos una vez y luego se repite mientras el usuario no ingrese una respuesta válida.
Estos ejemplos tienen el propósito de mostrar cómo utilizar el bucle While. No significa que sea la mejor forma de resolver el problema que abordan