While y do while en C: ejercicios resueltos

  3 minutos

Si buscas ejercicios while do while en C, aquí tienes ejemplos resueltos y explicados con casos reales de práctica.

La diferencia principal es esta:

  • while evalúa la condición antes de ejecutar,
  • do while ejecuta al menos una vez y luego evalúa.

Resuelve estos 4 mini ejercicios:

  1. pedir un número positivo con do while,
  2. contar cuántos dígitos tiene un número con while,
  3. sumar números hasta introducir 0 con while,
  4. menú de opciones repetitivo con do while.
#include <stdio.h>

int pedir_positivo(void) {
    int n;
    do {
        printf("Introduce un número positivo: ");
        scanf("%d", &n);
    } while (n <= 0);
    return n;
}

int contar_digitos(int n) {
    int contador = 0;
    if (n == 0) return 1;
    if (n < 0) n = -n;

    while (n > 0) {
        n /= 10;
        contador++;
    }
    return contador;
}

int suma_hasta_cero(void) {
    int suma = 0;
    int valor;
    printf("Introduce números (0 para terminar):\n");
    while (1) {
        scanf("%d", &valor);
        if (valor == 0) break;
        suma += valor;
    }
    return suma;
}

void menu_simple(void) {
    int opcion;
    do {
        printf("\nMenú:\n");
        printf("1) Saludar\n");
        printf("2) Mostrar info\n");
        printf("0) Salir\n");
        printf("Opción: ");
        scanf("%d", &opcion);

        if (opcion == 1) {
            printf("Hola, seguimos practicando C.\n");
        } else if (opcion == 2) {
            printf("Do while garantiza al menos una ejecución.\n");
        }
    } while (opcion != 0);
}

int main(void) {
    int positivo = pedir_positivo();
    printf("Número válido: %d\n", positivo);
    printf("Dígitos de %d: %d\n", positivo, contar_digitos(positivo));

    int suma = suma_hasta_cero();
    printf("Suma total: %d\n", suma);

    menu_simple();
    return 0;
}
Introduce un número positivo: -3
Introduce un número positivo: 145
Número válido: 145
Dígitos de 145: 3
Introduce números (0 para terminar):
5
10
-2
0
Suma total: 13
Menú:
1) Saludar
2) Mostrar info
0) Salir
...
  • Usar while cuando necesitas ejecutar el bloque al menos una vez.
  • No actualizar la variable de control dentro del bucle y quedar en ciclo infinito.
  • No validar entradas del usuario en bucles de consola.
  • Romper el flujo con break mal colocado.

while y do while se usan mucho en:

  • validación de formularios por consola,
  • menús interactivos,
  • lectura repetitiva de datos hasta condición de fin.

Son estructuras básicas para cualquier programa que dependa de entrada del usuario.

Si quieres una ruta completa con progresión real de dificultad:

Usa while cuando la condición puede ser falsa desde el principio. Usa do while cuando quieres ejecutar al menos una vez.

Asegúrate de actualizar la variable de control en cada iteración y de que la condición de salida sea alcanzable.

Sí, porque mezclan lógica de control, entrada de usuario y validación, que son habilidades básicas en C.