C en Español: Cómo usar do while en bucles con ejemplos prácticos

1. Introducción

La importancia de las estructuras repetitivas en C

En programación, los bucles son esenciales para repetir una misma acción varias veces. En C, se utilizan las sentencias for, while y, en el caso que nos ocupa, do while. En este artículo nos centraremos en do while, explicando desde su uso básico hasta ejemplos prácticos.

2. Fundamentos de do while

Sintaxis básica de do while

La sentencia do while garantiza que el bloque de código se ejecute al menos una vez. Su sintaxis es la siguiente:

do {
    // Instrucciones a ejecutar
} while (condición);

En esta estructura, el bloque do se ejecuta primero y luego se evalúa la condición. Si la condición resulta true, el ciclo se repite; si es false, finaliza.

Diferencias con while

En while, la condición se evalúa antes de ejecutar el bloque, de modo que solo se ejecuta si es true. En cambio, do while siempre ejecuta al menos una vez el bloque antes de evaluar la condición.

3. Cuándo usar do while

Reintento de entrada del usuario

El do while resulta útil al validar entradas de usuario. Por ejemplo, al solicitar una contraseña, se puede comprobar la validez de la primera entrada y, si es incorrecta, volver a solicitarla fácilmente.

Bucles en juegos

En programas de juegos, se utiliza do while cuando el jugador continúa repitiendo una acción hasta elegir “salir”. Mientras seleccione “continuar”, el bucle se ejecuta.

4. Ejemplos de código con do while

Ejemplo básico de do while

#include <stdio.h>

int main() {
    int i = 0;

    do {
        printf("Cuenta: %d\n", i);
        i++;
    } while (i < 5);

    return 0;
}

En este caso, el bloque do se ejecuta primero y se repite mientras i sea menor que 5. El resultado es la impresión de los números del 0 al 4.

Ejemplo con entrada del usuario

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Ingrese un número entre 1 y 10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("Número ingresado: %d\n", number);

    return 0;
}

El programa solicita un número y repite la petición hasta que se introduzca uno dentro del rango 1–10.

5. Bucles infinitos y control

Creación de un bucle infinito

do {
    // Se repite indefinidamente
} while (1);

Controlar un bucle infinito

Para salir o controlar bucles infinitos se utilizan break y continue:

  • break: interrumpe el bucle.
  • continue: salta al siguiente ciclo.
#include <stdio.h>

int main() {
    int count = 0;

    do {
        printf("Iteración: %d\n", count);
        count++;
        if (count > 5) {
            break;
        }
    } while (1);

    return 0;
}

El bucle termina cuando count supera 5 gracias al break.

6. do while con múltiples condiciones

Uso de operadores lógicos

do {
    // Instrucciones
} while (cond1 && cond2);

Ejemplo con condiciones complejas

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Ingrese un número entre 1 y 100: ");
        scanf("%d", &number);
    } while (number < 1 || number > 100);

    printf("Número ingresado: %d\n", number);

    return 0;
}

Este programa repite la entrada hasta que el número esté en el rango de 1 a 100.

7. Conclusión

La sentencia do while es útil cuando se necesita ejecutar un bloque al menos una vez. Saber elegir entre while y do while aumenta la flexibilidad de los programas. Además, con break, continue y operadores lógicos se pueden construir bucles más sofisticados.

8. Ejercicio práctico

Enunciado

Solicite al usuario un número entre 1 y 10. Si no lo cumple, pida otra vez. Cuando el número sea válido, muestre el doble de su valor.

Solución

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Ingrese un número entre 1 y 10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("El doble del número ingresado es: %d\n", number * 2);

    return 0;
}

9. Información adicional

Después de dominar do while, conviene estudiar las diferencias con for y while. El siguiente paso importante en C es comprender los punteros, fundamentales para programar a un nivel más avanzado.

年収訴求