Ciclos en c++
Los ciclos o estructuras
repetitivas, son estructuras que permiten indicar dentro de un programa, que un
bloque de instrucciones se ejecutará un número finito de veces. También
conocidos como bucles, son una estructura de control esencial al momento de
programar. Tanto C como C++ y la mayoría de los lenguajes utilizados
actualmente, nos permiten hacer uso de estas estructuras. Permite repetir una o
varias instrucciones cuantas veces lo necesitemos, por ejemplo, si quisiéramos
escribir los números del uno al cien no tendría sentido escribir cien líneas
mostrando un numero en cada una, para esto y para muchísimas cosas más, es útil
un ciclo, permitiéndonos hacer una misma tarea en una cantidad de líneas muy
pequeña y de forma prácticamente automática.
Existen diferentes tipos de
ciclos o bucles, cada uno tiene una utilidad para casos específicos y depende
de nuestra habilidad y conocimientos poder determinar en qué momento es bueno
usar alguno de ellos. Tenemos entonces a nuestra disposición los siguientes
tipos de ciclos en C++:
·
Ciclo for en C++
·
Ciclo while en C++
·
Ciclo do-while en C++
El
ciclo FOR:
Es un ciclo numérico, basado
en el uso de un contador, el cual no es otra cosa que una variable a la cual le
damos un valor inicial y a la que le iremos incrementando de forma fija su
valor, para que nos permita contar el número de veces o iteraciones que el
ciclo ejecuta.
Dado que el ciclo FOR está
basado en usar un contador, debemos de saber con certeza cuántas iteraciones
realizará, antes de entrar a él, su sintaxis es muy simple
FOR
(inicio; condición; incremento)
La llave que esta después del
paréntesis marca el inicio del bloque de instrucciones que se ejecutará
mientras i sea menor de 3, dicho bloque son las líneas 9 y 10, ya que en la
línea 11 vemos la llave que cierra el bloque del ciclo FOR, por lo que, lo que
esté después se ejecutará hasta que termine el ciclo.
Los
ciclos while:
Son también una estructura cíclica, que nos
permite ejecutar una o varias líneas de código de manera repetitiva sin
necesidad de tener un valor inicial e incluso a veces sin siquiera conocer
cuando se va a dar el valor final que esperamos, los ciclos while, no dependen
directamente de valores numéricos, sino de valores booleanos, es decir su
ejecución depende del valor de verdad de una condición dada, verdadera o falso,
nada más. De este modo los ciclos while, son mucho más efectivos para
condiciones indeterminadas, que no conocemos cuando se van a dar a diferencia
de los ciclos for, con los cuales se debe tener claro un principio, un final y
un tamaño de paso.
¿Cómo funciona un Ciclo While?
Para comprender mejor el
funcionamiento del ciclo while, pongamos un buen ejemplo, imaginemos que por
algún motivo, queremos pedirle a un usuario una serie de números cualquiera y
que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100.
Como vemos, aquí no podríamos utilizar un ciclo for, pues no tenemos ni idea de
cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, es algo
indeterminado para nosotros, sin embargo el ciclo while nos permite ejecutar
una acción de forma infinita hasta que se cumpla alguna condición específica,
en nuestro caso sería que el numero ingresado sea mayor a 100. De modo que si
el usuario nos ingresa de manera sucesiva los siguientes número 1,50,99, 49,
21, 30, 100 ..., nuestro programa no finalizara, pues ninguno de estos números
es mayor que 100, sin embargo si nos ingresara el número 300, el programa
finalizaría inmediatamente.
Ejemplo: Pedir números por
pantalla hasta que alguno sea mayor a 100
Vamos a retomar el ejemplo
anterior, donde queremos hacer que nuestro programa le pida a un usuario una
serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario
ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que
nos aseguraremos de haber comprendido bien todos los conceptos anteriores:
Solución Ejemplo 1:
Para solucionar esto, debemos
tener clara cuál va a ser la condición que se debe cumplir para que el ciclo
este pidiendo el numero contantemente, el ciclo se va a detener solo cuando el
numero ingresado sea mayor que 100, así que la condición para que se siga
ejecutando es que el numero sea menor a 100, ¿Comprender la lógica?, es simple
si para que se detenga el numero debe ser mayor a 100, entonces para seguirse
ejecutando el numero debe ser menor o igual a 100, veámoslo entonces…
Los
ciclos do-while:
Son una estructura de control
cíclica, los cuales nos permiten ejecutar una o varias líneas de código de
forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin
siquiera conocer cuando se va a dar el valor final, hasta aquí son similares a
los ciclos while, sin embargo el ciclo do-while nos permite añadir cierta
ventaja adicional y esta consiste que nos da la posibilidad de ejecutar primero
el bloque de instrucciones antes de evaluar la condición necesaria, de este
modo los ciclos do-while, son más efectivos para algunas situaciones
especificas. En resumen un ciclo do-while, es una estructura de control cíclica
que permite ejecutar de manera repetitiva un bloque de instrucciones sin
evaluar de forma inmediata una condición especifica, sino evaluándola justo
después de ejecutar por primera vez el bloque de instrucciones.
¿Cómo funciona un Ciclo
Do-While?
Para comprender mejor el
funcionamiento del ciclo while, usemos de nuevo el ejemplo de la sección
anterior sobre el ciclo while. Imaginemos entonces que por algún motivo,
queremos pedirle a un usuario una serie de números cualquiera y que solo
dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100. Como
vimos anteriormente, esto se puede hacer por medio de un ciclo while, pero
vamos ahora a ver como lo podemos hacer usando un ciclo do-while mejorando así
un poco nuestro algoritmo, evitando ciertos comandos, tal como se dijo con el
ciclo while, en efecto aquí estamos en la situación de no tener ni idea de
cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, pues es
algo indeterminado para nosotros, sin embargo el ciclo while y en efecto el
do-while nos permite ejecutar cierta acción de forma infinita hasta que se
cumpla alguna condición especifica, en nuestro caso sería que el numero
ingresado sea mayor a 100. De modo que si el usuario nos ingresa de manera
sucesiva los siguientes numero 1,50,99, 49, 21, 30, 100 ..., nuestro programa
no finalizara, pues ninguno de estos números es mayor que 100, sin embargo si
nos ingresara el numero 300, el programa finalizaría inmediatamente.
Ejemplo 1: Pedir números por
pantalla hasta que alguno sea mayor a 100
Vamos a retomar el ejemplo
anterior, donde queremos hacer que nuestro programa le pida a un usuario una
serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario
ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que
nos aseguraremos de haber comprendido bien todos los conceptos anteriores,
vamos a ver cómo hacer lo mismo con dos tipos de ciclos diferentes (el while y
el do-while), sin embargo vamos a ver como con uno es más eficiente que con el
otro:
Solución Ejemplo 1:Para
solucionar esto, debemos tener clara cuál va a ser la condición que se debe
cumplir para que el ciclo este pidiendo el numero contantemente, el ciclo se va
a detener solo cuando el numero ingresado sea mayor que 100, así que la
condición para que se siga ejecutando es que el número sea menor a 100,
¿Comprender la lógica?, es simple si para que se detenga el numero debe ser
mayor a 100, entonces para seguirse ejecutando el numero debe ser menor o igual
a 100, veámoslo entonces…
Nota 2: Si no comprendes
alguna de las líneas de estos códigos, te recomiendo visitar los contenidos
anteriores (Entrada y Salida de Datos, Librerías ó Comentarios, Estructura de
un Programa) o también puedes dejar un comentario al final de la sección con tu
pregunta.
En efecto los ciclos do-while,
son bastante útiles, sin embargo como con cualquier ciclo desde el punto de
vista de la eficiencia al igual que con los ciclos for, es recomendable
evitarlos en la medida de lo posible, siempre que vayas a usar un ciclo
do-while o cualquier tipo de ciclo en realidad, deberías preguntarte primero si
es totalmente necesario o si existe una manera más efectiva de hacerlo.
Evidentemente habrá situaciones en las que será casi que imprescindible usar el
ciclo, pues por algo existen, está entonces en nuestra habilidad determinar
cuándo usarlos y mejor aún como usarlos de manera efectiva.
Bibliografía:



Comentarios
Publicar un comentario