Comparación y uso de las estructuras de repetición

Comparación y uso de las estructuras de repetición de C++

Introducción

Las estructuras de repetición, también conocidas como bucles o ciclos, son una herramienta fundamental en la programación para ejecutar un bloque de código de forma repetitiva. En C++, existen tres tipos principales de bucles:

  • Bucle for: Es el más utilizado y permite ejecutar un bloque de código un número determinado de veces.
  • Bucle while: Ejecuta un bloque de código mientras se cumpla una condición específica.
  • Bucle do-while: Similar al bucle while, pero el bloque de código se ejecuta al menos una vez, incluso si la condición es falsa inicialmente.

Ejemplos con generación de números aleatorios

Bucle for:

C++
#include <iostream>
#include <random>

using namespace std;

int main() {
  // Generar 10 números aleatorios entre 1 y 100
  for (int i = 0; i < 10; i++) {
    int numeroAleatorio = rand() % 100 + 1;
    cout << numeroAleatorio << " ";
  }

  return 0;
}

Bucle while:

C++
#include <iostream>
#include <random>

using namespace std;

int main() {
  // Generar números aleatorios hasta que se obtenga un 50
  int numeroAleatorio;
  do {
    numeroAleatorio = rand() % 100 + 1;
    cout << numeroAleatorio << " ";
  } while (numeroAleatorio != 50);

  return 0;
}

Bucle do-while:

C++
#include <iostream>
#include <random>

using namespace std;

int main() {
  // Generar números aleatorios hasta que se obtengan 3 números 50
  int numeroAleatorio, contador = 0;
  do {
    numeroAleatorio = rand() % 100 + 1;
    cout << numeroAleatorio << " ";
    if (numeroAleatorio == 50) {
      contador++;
    }
  } while (contador < 3);

  return 0;
}

Errores comunes al usar bucles

  • Bucle infinito: Se refiere a que el bucle no termina puesto que la condición siempre resulta ser verdadera, esto puede ocurrir por las siguientes razones:
    • No inicializar la variable del bucle: Esto puede provocar que el bucle se ejecute un número incorrecto de veces o que se comporte de forma inesperada.
    • Olvidar actualizar la variable del bucle: Esto puede provocar que el bucle se ejecute infinitamente.
  • Error de frontera: Este tipo de error se define como aquel que no logra iterar las veces que se espera, o itera menos veces o itera más veces.
    • Usar una condición incorrecta: Esto puede provocar que el bucle se ejecute demasiado o no lo suficiente.
    • No usar sentencias break o continue cuando sea necesario: Esto puede hacer que el código sea difícil de leer y mantener.

Sentencias break y continue

  • Break: Se utiliza para salir del bucle inmediatamente.
  • Continue: Se utiliza para omitir el resto del bucle actual e ir a la siguiente iteración.

Ejemplos del uso de break y continue

Break:

El siguiente bucle termina cuando i alcanza el valor de 5.

C++
for (int i = 0; i < 10; i++) {
  if (i == 5) {
    break; // Salir del bucle cuando i sea 5
  }
  cout << i << " ";
}

Continue:

El siguiente bucle imprime los números impares entre el 0 y el 10.

C++
for (int i = 0; i < 10; i++) {
  if (i % 2 == 0) {
    continue; // Omitir números pares
  }
  cout << i << " ";
}

Conclusión

Las estructuras de repetición son una herramienta esencial para cualquier programador de C++. Es importante comprender cómo funcionan los diferentes tipos de bucles y cuándo usarlos. También es importante tener cuidado con los errores comunes al usar bucles y saber cómo usar las sentencias break y continue para controlar el flujo del bucle.


Comentarios

Entradas más populares de este blog

Generación de números aleatorios

Paso de parámetros en funciones

STL de C++