3.2.5. for

Un bucle for realiza una inicialización antes de la primera iteración. Luego ejecuta una evaluación condicional y, al final de cada iteración, efectúa algún tipo de «siguiente paso». La estructura del bucle for es:

for(initialización; condición; paso)
    sentencia

Cualquiera de las expresiones de «inicialización», «condición», o «paso» pueden estar vacías. El código de «inicialización» se ejecuta una única vez al principio. La expresión «condicional» se evalúa antes de cada iteración (si se evalúa a false desde el principio, el cuerpo del bucle nunca llega a ejecutarse). Al final de cada iteración del bucle, se ejecuta «paso».

Los bucles for se utilizan generalmente para tareas de «conteo»:

//: C03:Charlist.cpp
// Display all the ASCII characters
// Demonstrates "for"
#include <iostream>
using namespace std;

int main() {
  for(int i = 0; i < 128; i = i + 1)
    if (i != 26)  // ANSI Terminal Clear screen
      cout << " value: " << i 
           << " character: " 
           << char(i) // Type conversion
           << endl;
} ///:~

Listado 3.5. C03/Charlist.cpp


Puede ocurrir que la variable i sea definida en el punto en el que se utiliza, en vez de al principio del bloque delimitado por la apertura de la llave {. Esto difiere de los lenguajes procedurales tradicionales (incluyendo C), en los que se requiere que todas las variables se definan al principio del bloque. Esto se discutirá más adelante en este capítulo.