Ciclos
¡Enhorabuena, has llegado hasta el piso de Ciclos! Ya va siendo momento de aprender funciones que nos van a servir para que nuestro programa termine cuando nosotros queramos.
Si eres observador has notado que todos los programas que hemos desarrollado tienen un inicio > proceso > final, cada vez que tu quieras probar tu programa tienes que reiniciarlo para que vuelva a repetir el proceso. En este tema vamos a aprender cómo hacer que nuestro programa se repita automáticamente y termine cuando nosotros decidamos.
En fundamentos a la programación aprendimos que existen diferentes tipos de ciclos:
while: Ejecuta el bloque de código mientras la condición sea verdadera.
do while: Ejecuta el bloque de código al menos una vez y luego mientras la condición sea verdadera.
for: Ejecuta el bloque de código un número determinado de veces.
While
Hoy vamos a ver cómo implementar estos ciclos en C++ empezando con while, observa el siguiente caso en donde vamos a crear un sistema de mejora de daño:
1#include <iostream>2using namespace std;34int main() {5char response = 's';6int damage = 0;7char choice;89while (response == 's') {10cout << "¿Isaac tomó un objeto de +1 de daño? (s/n): ";11cin >> choice;1213if (choice == 's') {14damage++;15}1617cout << "¿Deseas continuar explorando el mapa? (s/n): ";18cin >> response;19}2021cout << endl << "El daño final de Isaac es: " << damage << endl;2223return 0;24}
Pudiste notar que el programa se repite mientras la condición sea verdadera, en este caso mientras response sea s, este es el corazón de muchos videojuegos, mientras tu personaje siga con vida continúa tomando decisiones y realizando acciones.
Do While
Imagina ahora que nuestra variable response inicie con el valor de n, ¿Cuántas veces crees que se ejecute el programa? La respuesta es 0 veces, porque la condición no se cumple desde el inicio, si necesitamos que el programa se ejecute al menos una vez, necesitamos usar do while.
1#include <iostream>2using namespace std;34int main() {5char response = 's';6int damage = 0;7char choice;89do {10cout << "¿Isaac tomó un objeto de +1 de daño? (s/n): ";11cin >> choice;1213if (choice == 's') {14damage++;15}1617cout << "¿Deseas continuar explorando el mapa? (s/n): ";18cin >> response;19} while (response == 's');2021cout << endl << "El daño final de Isaac es: " << damage << endl;2223return 0;24}
La diferencia entre estos dos ciclos es que while evalúa la condición antes de ejecutar el bloque de código, mientras que do while ejecuta el bloque de código al menos una vez y luego evalúa la condición.
For
Si conoces el número de veces que vas a repetir un bloque de código, puedes usar el ciclo for, generalmente se utiliza cuando queremos recorrer un arreglo.
Al momento de que pierdes la partida, aparece la ventana de derrota y muestra el listado de los objetos que tomaste durante el juego, ¿Te gustaría ver como es que se hace?
1#include <iostream>2using namespace std;34int main() {5string items[4] = { "😇 The Halo", "💰 Sack of Pennies", "🌚 Abel", "😿 Guppy's Head" };6char response = 'n';78do {910cout << "¿Isaac murió? (s/n): " << endl;11cin >> response;1213} while (response == 'n');1415cout << "DEAR DIARY," << endl;16cout << "TODAY I DIED." << endl;17cout << "I was killed by this thing! => The Bloat." << endl;18cout << "IN SOME COLD PLACE" << endl;19cout << endl;2021for (int i = 0; i < 4; i++) {22cout << "- " << items[i] << endl;23}2425cout << endl;26cout << "I LEAVE ALL THAT I OWN TO MY CAT GUPPY" << endl;2728return 0;29}
Así de sencillo es como funcionan los ciclos, nos sirven para realizar tareas repetitivas y ciclar instrucciones bajo una condición.
Sala de desafío #4
El día de hoy traemos a un par de llorones incomprendidos: Jacob & Esau.


3.75
-0.1



2.75
0.277Desarrolla un programa en C++ que:
Considerando el siguiente menú:
J: Jacob
E: Esau
El programa tratará de recolección de objetos, mínimo 1 y máximo los que el usuario desee.
Por cada objeto tomado, solicitar al usuario a que personaje deberá agregarse.
Se deberá tomar en cuenta que la elección de J y E pueden ser mayúsculas o minúsculas.
Al finalizar la recolección, mostrar la cantidad de objetos que tiene cada personaje con el siguiente formato:
Jacob: ▊ ▊ ▊ ▊ ▊ ▊
Esau: ▊ ▊ ▊ ▊
La cantidad de símbolos ▊ dependerá del número de objetos tomado por cada uno.
Si Jacob tiene más objetos que Esau, muestra un mensaje de Jacob & Hitbox.
Si Esau tiene más objetos que Jacob, muestra un mensaje de Estorbo & Esau.
Si ambos tienen la misma cantidad de objetos, muestra un mensaje de Estorbo & Hitbox.
¿Pudiste completar el desafío de los hermanos? ¡Etiquetame!
