DMarlon Studio

Lección 9 · 9 de 20

Bucles for · C

Use el bucle for de C para contar hacia arriba y hacia abajo, sumar, saltar vueltas con continue, salir con break y anidar bucles.

C · Bucles for en DMarlon Studio: el código del ejemplo y su salida en la terminal

`for` reúne en una línea las tres partes de un bucle con contador: el inicio (int i = 1), la condición (i <= 5) y el paso (i++). Es lo mismo que un while, pero más compacto. La variable i solo existe dentro del bucle.

El paso puede ser cualquiera: n -= 2 cuenta hacia atrás de dos en dos. Un for también sirve para acumular: total empieza en 0 y en cada día suma lo vendido, 20 + 3 * day, hasta llegar a 224 panes.

`continue` salta al final de la vuelta y pasa a la siguiente: los asientos múltiplos de 4 (seat % 4 == 0) no se escriben. `break` sale del bucle del todo: al pasar del asiento 10, el bucle termina aunque la condición llegue hasta 20.

Un bucle dentro de otro recorre filas y columnas. Por cada row, el bucle interior da cinco vueltas. 'A' + row aprovecha que un char es un número: 'A' + 1 es 'B'.

Código · main.c

#include <stdio.h>int main(void) {    // for (start; condition; step): everything about the counter in one line.    for (int i = 1; i <= 5; i++) {        printf("%d x 7 = %d\n", i, i * 7);    }    // Counting down in steps of 2.    for (int n = 10; n > 0; n -= 2) printf("%d ", n);    printf("\n");    // Adding up: a bakery sells 20 loaves plus 3 more each day.    int total = 0;    for (int day = 1; day <= 7; day++) {        total += 20 + 3 * day;    }    printf("Loaves sold this week: %d\n", total);    // continue jumps to the next turn; break leaves the loop.    for (int seat = 1; seat <= 20; seat++) {        if (seat % 4 == 0) continue;  // every fourth seat is broken        if (seat > 10) break;         // only the first row is open        printf("seat %d ", seat);    }    printf("\n");    // A loop inside a loop: rows and columns of a cinema.    for (int row = 0; row < 3; row++) {        for (int col = 1; col <= 5; col++) printf("%c%d ", 'A' + row, col);        printf("\n");    }    return 0;}

Salida · cc main.c -o main && ./main

1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
4 x 7 = 28
5 x 7 = 35
10 8 6 4 2 
Loaves sold this week: 224
seat 1 seat 2 seat 3 seat 5 seat 6 seat 7 seat 9 seat 10 
A1 A2 A3 A4 A5 
B1 B2 B3 B4 B5 
C1 C2 C3 C4 C5

Para recordar

  • for (inicio; condición; paso) reúne todo el contador.
  • Una variable acumuladora empieza en 0 y suma en cada vuelta.
  • continue pasa a la siguiente vuelta; break sale del bucle.
  • Con bucles anidados se recorren filas y columnas.

Ejercicio

Escriba la tabla de multiplicar completa del 1 al 9 con dos bucles for anidados, con cada número en una columna de ancho 3 (%3d).