While y do while en C: ejercicios resueltos

While y do while en C: ejercicios resueltos paso a paso

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.

Enunciado

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.

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#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;
}

Resultado esperado

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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
...

Errores frecuentes

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

Aplicación práctica

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.

Siguiente ejercicio recomendado

Práctica guiada y siguiente paso

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

FAQ

¿Cuándo uso while y cuándo do while en C?

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

¿Cómo evito bucles infinitos?

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

¿Es importante practicar menús con do while?

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