Los ciclos: Tareas repetitivas

¿Qué son?

En palabras simples, son una estructura de control que permite repetir una misma tarea una determinada o indeterminada cantidad de veces, ayudando a reducir la redundancia de código. Se conocen también como bucles.

¿Cuáles tipos de ciclos hay en C++?








A continuación, se detalla cómo funcionan cada uno de estos ciclos. Aunque su tarea podría resumirse de la misma manera ('Repetir una cantidad de instrucciones mientras una condición se cumpla'), tienen una estructura diferente.

for

Es un ciclo que se utiliza cuando se sabe la cantidad de veces que se desea repetir una determinada lista de instrucciones e inclusive una sola instrucción.

¿Cuál es su estructura?


¿Cómo funciona?                                                                                        



En el flujo anterior, el primer campo del bucle for corresponde a la inicialización, que establece el punto de partida del bucle. El segundo campo es la condición, donde definimos qué debe cumplirse para que las instrucciones del bucle se ejecuten. Finalmente, el tercer campo es la iteración, que modifica el valor de la variable de control para que el ciclo continúe mientras la condición evaluada sea verdadera.

Al principio, al aprender sobre ciclos, es común tener la idea errónea de que se modifica el valor del iterador de uno en uno, es decir, utilizando ++ o --. Sin embargo, la realidad es que este se puede modificar de varias formas: sumando de N en N, restando, multiplicando, etc. El tipo de incremento o decremento que se utilice va a depender del propósito para el cual se creó el ciclo.

Algunos ejemplos del ciclo for

Ejemplo 1

Se desea saber cuales números del 1 al 3 son divisibles entre 3.



Veamos como funciona el ciclo anterior, paso a paso.


Ejemplo 2

Se desea saber cuales números del 4 al 0 son par.





Veamos como funciona el ciclo anterior, paso a paso.


Nótese que cuando incrementamos se inicia en un valor menor al limite de la condición y cuando se decrementa se hace al revés.

Ejemplo 3

Es posible también utilizar un for para recorrer caracteres. 





¿Qué mostrará esto? El abecedario en mayúsculas, ¿ Por qué sucede? El caracter 'A' se interpreta por su valor en la tabla ASCII, el cuál corresponde al 65 y al incrementar de 1 en 1 se va accediendo a cada letra del abecedario hasta llegar 'Z', cuyo valor ASCII es 90.

Ejemplo 4

A partir de la versión C++ 11 se incorporó otra forma de recorrer cadenas de caracteres (strings) caracter por caracter. A continuación, un ejemplo:






Este ejemplo mostrará cada carácter del mensaje por separado. No es necesario un iterador, ya que esta estructura de for recorrerá caracter por caracter de la cadena.

while

El ciclo while se utiliza cuando se desea ejecutar una serie de instrucciones basadas en una condición de entrada. A diferencia del for, no es necesario conocer hasta dónde tiene que llegar en todos los casos; este ciclo simplemente busca que la condición sea verdadera para continuar ejecutándose.

¿Cuál es su estructura?














¿Cómo funciona?    

El bucle while puede tener un iterador que aumente o disminuya, al igual que un for. No obstante, también puede ejecutarse mientras una condición booleana sea verdadera, incluso indefinidamente. Si se usa con un iterador, este debe actualizarse al final del cuerpo del bucle. Las variables de la condición deben definirse antes del bucle para asegurar su disponibilidad.

Algunos ejemplos del ciclo while

Ejemplo 1

En el siguiente ejemplo, se muestra un uso básico donde se inicia la variable continuar como true. Luego, se muestra un mensaje y se le pide al usuario que ingrese 1 para continuar o 0 para salir. El valor ingresado se asigna a la variable continuar, que es equivalente a true (1) para continuar y false (0) para salir, ya que true se interpreta como 1 y false como 0 en términos binarios.

Nótese que en este caso no fue necesario un iterador, solo se evalúa la condición de entrada.









Ejemplo 2

Para este ejemplo, haremos uno de los ejercicios hechos con el ciclo for (números del 1 al 3 divisibles entre 3), para demostrar su equivalente con el ciclo while. 



Como se mencionó inicialmente, el ciclo while puede utilizar un iterador. En este ejemplo, se realizó lo mismo que con el ciclo for, pero utilizando la estructura del ciclo while.

Ejemplo 3

Se toma un número entero y se realiza la suma de sus dígitos. El ciclo deberá ejecutarse hasta que el número ingresado llegue a ser 0 lo cuál será equivalente a devolver false en la condición de entrada del ciclo while.


Veamos como funciona el ciclo anterior, paso a paso.


do while

El ciclo do while verifica que la condición se cumpla al final de su estructura, es decir, permite que las instrucciones se ejecuten al menos una vez. Luego, al final del bloque de instrucciones, verifica si la condición dada es verdadera para volver a ejecutarse. Esto puede ser según una condición determinada por el usuario o por la lógica del programa.

¿Cuál es su estructura?


¿Cómo funciona?    

Al igual que en el while, en el do while también se puede usar un valor booleano como condición para volver a ejecutar las instrucciones. Es importante crear las variables involucradas en la condición antes del ciclo para que estas puedan ser accedidas y utilizadas correctamente dentro del mismo.

Ejemplos del ciclo do  while

Ejemplo 1

Permite al usuario ingresar cualquier número entero y verifica si es par; si lo es, le permite seguir probando números. Si ingresa uno que no lo es, le indica que ha perdido y sale del ciclo.


Veamos como funciona el ciclo anterior

Ejemplo 2

Se genera un número aleatorio entre 1 y 100. Posteriormente, se solicita al usuario que ingrese un número entre 1 y 100. La idea es que el ciclo continúe mientras el usuario no haya adivinado el número generado.




Nótese que el mensaje que indica que lo ha adivinado está fuera del ciclo, esto es porque el usuario deberá intentarlo hasta que lo adivine, sin importar cuántos intentos haga.

Sí desea saber más sobre números aleatorios puede ir aquí.

Comentarios

Entradas populares