Bu

Bucles en C++

12 ejercicios

Acerca de Bucles

Los bucles se usan para ejecutar cierta lógica de forma repetida. Los dos tipos más comunes son el while loop (bucle indefinido) y el for loop (bucle definido o contado). También existe el bucle for each, que aparecerá en un concepto posterior.

Sintaxis general

El for loop consta de un encabezado y un bloque de código que contiene el cuerpo del bucle entre llaves. El encabezado consta de 3 componentes separados por punto y coma ;: la sentencia de inicialización, la condición y otra expresión. Cada uno de ellos puede estar vacío.

for (init-statement; condition; expression) {
  some_statement;
}
  • El componente de inicialización es código que se ejecuta solo una vez, antes de que empiece el bucle.
  • El componente de condición debe ser una expresión que evalúe a un Boolean y que controle cuándo debe detenerse el bucle. El código dentro del bucle se ejecutará mientras esta condición se evalúe como true. Tan pronto como esta expresión se evalúe como false, no se ejecutará ninguna iteración más del bucle.
  • El componente de expresión es código que se ejecutará al final de cada iteración.

El while loop ejecuta su cuerpo mientras su condición sea true. El fragmento de código a continuación muestra cómo transformar un bucle for en un bucle while.

init-statement;
while(condition) {
    some_statement;
    expression;
}

Interludio: incrementos y decrementos

Cuando se trabaja con bucles, a menudo es necesario sumar 1 o restar 1 a una variable contadora. Esto es tan común que la operación tiene operadores especiales: ++ y --.

Tienen una forma prefija y una forma posfija. La forma prefija cambia la variable antes de usarla en la sentencia, y la posfija, después. Probablemente quieras la forma prefija casi siempre.

int a{3};
int b{--a};
// b is 2, a is now 2
int c{a++};
// c is 2, a is now 3

Bucles for: un ejemplo

El componente de inicialización normalmente prepara una variable contadora, la condición comprueba si el bucle debe continuar o detenerse y el componente posterior normalmente incrementa el contador al final de cada repetición.

int sum{0};
for (int i{1}; i < 10; ++i) {
  sum += i;
}

Este bucle sumará los números del 1 al 9 (incluido el 9).

break y continue

Dentro del cuerpo de un bucle puedes usar la palabra clave break para detener por completo la ejecución del bucle:

int sum{2};
while(true) {
    sum *= 2;
    if (sum > 1000)
        break;
}
// sum is now 1024

En cambio, la palabra clave continue solo detiene la ejecución de la iteración actual y continúa con la siguiente:

int equal_sum{0};
for (int i{1}; i < 7; ++i) {
  if  (n%2 == 1) {
    continue;
  }
  equal_sum += i;
}
// equal_sum is now 12

Nota: por lo general es más fácil entender la lógica del bucle cuando se minimiza o se evita por completo el uso de break y continue.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva

Aprende Bucles

La práctica está bloqueada

Desbloquea 4 ejercicios más para practicar Bucles