> For the complete documentation index, see [llms.txt](https://bla0x1s-organization.gitbook.io/untitled-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bla0x1s-organization.gitbook.io/untitled-1/reverse-engineering/c-programming/bucle-for.md).

# BUCLE FOR

Cuando sepa exactamente cuantas veces desea recorrer un bloque de codigo, use el `for` en lugar de `while`:

```c
for (declaracion1; declaracion2; declaracion3) {
    // code
}
```

La declaracion 1 se ejecuta (una vez) antes de la ejecucion del bloue de codigo.

La declaracion 2 define la condicion para ejecutar el bloque de codigo.

La declaracion 3 se ejecuta (todas las veces) despues de que se haya ejecutado el bloque de codigo.

Veamos un ejemplo imprimiendo los numeros de 0 al 4:

```c
#include <stdio.h>

int main() {
    int i;
    for (i=0; i<5; i++) {
    printf("%d\n", 1);
    }
    return 0 
}
```

En este otro codigo solo se imprimiran numeros pares del 0 al 10:

```c
#include <stdio.h>

int main() {
    for (i = 0; i <= 10; i = i + 2) {
        printf("%d\n", 1);
    }
    return 0 
}
```

### Bucles Anidados

Es posible crear un bucle dentro de otro bucle. El bucle interno se ejecutara una vez por cada iteracion del bucle externo:

```c
#include <stdio.h>

int main() {
    int i, j;
    
    for (i = 1; i <= 2; ++i) {
        printf("Externo: %d\n", i);
        
        for (j = 1; j <= 3; ++j ) {
            printf("Interno: %d\n", j);
        }
    }
    return 0
}
```
