csharp-bucle-while

Qué es y cómo usar el bucle WHILE y DO-WHILE en C#

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).

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 bucle do-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 bucle while puede no ejecutar el bloque si la condición es false 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