Al igual que ir a la escuela, en programación hay operaciones que se repiten mientras se cumpla alguna condición (por ejemplo: ir a la escuela solo de lunes a viernes). Así que quédate si quieres aprender cómo funcionan 😉
¿Cómo funcionan los ciclos?
Hay varias formas de generar ciclos en programación. Pero todos siguen la misma lógica:
Primero fijas las condiciones. Por ejemplo: “Mientras no sea sábado, domingo ni feriado”.
Luego indicas lo que sucederá cuando las condiciones se cumplan (operaciones, funciones a ejecutar, entre otros). Por ejemplo: “Voy a la escuela”.
Finalmente, indicas lo que sucederá cuando las condiciones dejen de cumplirse (operaciones, funciones a ejecutar, entre otros). Por ejemplo: “Me quedo en casa”.
¿Por qué usar ciclos?
En programación, en ocasiones te toparás con código que tienes que repetir varias veces para lograr el efecto deseado. Quizás puedas usar funciones para resumirlos, pero ellas no resuelven el problema cuando te ves obligado a ejecutarla una y otra vez.
En estos casos, lo mejor es programar un ciclo. De este modo, el ciclo repetirá un fragmento de código tantas veces como sea necesario hasta que deje de cumplirse la condición que indicaste.
💡 Ojo, es importante que en el código escribas un modo de que el ciclo termine. Generalmente se hace aplicando en cada repetición una pequeña modificación a la variable donde se observa la condición.
Por ejemplo, en el ciclo de ir a la escuela que vimos arriba, cada vez que evaluamos la condición va a pasar un día. De ese modo, tarde o temprano llegaríamos al fin de semana o a un día feriado, y no sería necesario ir a la escuela.
Tu computadora no se va a quemar si por error escribes un ciclo infinito. Pero tu programa fallará cuando lo ejecute.
Ahora, usaremos esta información para modificar el código del juego de piedra, papel o tijera que creamos previamente. Vamos a crear un ciclo que nos permita hacer tres partidas seguidas, que guarde el número de victorias, y al final nos diga quien obtuvo más victorias.
Haz click aquí cuando estés listo para hacer la modificación 😉
💪💚 Me siento muy afortunado por haber terminado el anterior curso de programación básica! Animo para todos los nuevos que entran!! lo que más importa es que nunca paren de aprender. 🚀
Recuerden que en la programación la practica hace al maestro! ^-^ 💪
Una forma interesante de ver los ciclos es verlos como “algo que da vueltitas” 😄.
.
.
Ese “algo” se va a mantener dando vueltitas siempre y cuando la condición que nosotros establezcamos sea verdadera. En el momento en el que nuestra condición llega a ser falsa ese “algo” deja de dar vueltas y el ciclo se detiene.
.
¿Pero que es ese algo? Ese algo es el código que queremos que se repita tantas veces como nosotros queramos, por ejemplo:
.
mientras hay comida:
come
En este caso, la condición es "hay comida" y nuestro código sería "come". Entonces, entramos a dar vueltitas:
.
¿Hay comida? Sí.
Come.
¿Hay comida? Sí.
Come.
¿Hay comida? Sí.
Come.
¿Hay comida? No.
-- Termina el ciclo o dejamos de dar vueltitas --
.
En resumidas cuentas, un ciclo nos permite repetir el mismo código tantas veces como queramos, solo necesitamos definir una condición para saber cuándo se dejará de ejecutar ese ciclo 😄.
Un ciclo es una secuencia de instrucciones de código que se ejecuta repetidas veces, hasta que la condición asignada a dicho bucle deja de cumplirse. Los 3 bucles más utilizados en programación son el bucle while, el bucle for y el bucle do-while. 👌
Cada que un ciclo se reinicia, es decir, cada vez que un ciclo se ejecuta al menos una vez y empieza de nuevo se dice que itero una vez y empieza de nuevo, la segunda vez ya es una segunda iteración y así el ciclo va a iterar determinadas veces como tu le indiques o hasta que se cumpla la condición.
.
Conclusion: Iterar significa repetir un proceso con la intención de llegar a una meta.
Para dar formato y que se vea todo alineado y bonito es fácil, seleccionamos y le damos formato a la sección. Es útil para entender la secuencia del código aparte de que no lo hacemos de forma manual.
Los ciclos son instrucciones repetitivas que se cumplen mientras las condiciones establecidas sean verdaderas.
Todos los ciclos tienen que tener una condición que los frene.
😄 Por acá les dejo un ejemplo de cómo sería el algoritmo que comenta Freddy llevado a la práctica. Si tienen alguna duda y alguien gusta que lo explique, con mucho gusto lo hago.
La forma de enseñar de nuestro profesor Freddy Vega, es incomparable, no me arrepiento de invertir cada sol en estos cursos, mi futuro poco a poco gana experiencia.
Tomé el curso anterior de programación básica y se ve que mejoró bastante. Pese a mis años de experiencia, lo que me enseñan estos cursos es aprender a enseñar
//Inicio con el 100% de energia
energia = 100//Ciclo -> Mientras mi energia sea mayor que 20%, entonces correré
mientras(energia > 20){
//Acciones que hago al correr
moverpiernaDerecha();
moverpiernaIzquierda();
respirar();
energia = energia - 10; // Cada vez que corro, mi energia va disminuyendo en un 10%
}
//El ciclo finaliza cuando mi energia, deja de ser mayor que 20%.
=SI(Y(A1=“COMIDA EN EL PLATO”;B1=“TENGO HAMBRE”);“SEGUIR COMIENDO”;"DEJAR DE COMER ")
respuesta SEGUIR COMIENDO
si una de las dos condiciones anteriores A1 o B1 no se cumple la respuesta seria DEJAR DE COMER
Es una ventaja poder crear ciclos o bucles para realizar cualquier tipo de tarea, pero además de eso nos sirve por si una tarea necesita ejecutarse más de una vez
La estructuración de la programación es como tu organización en tu vida real …si tienes organizado todo encontraras las cosas mas rápido para ser cambiada mejorada o simplemente eliminadas y que no causes un desastre en tu vida
No son infinitos, hay una condición que frena el ciclo. loop
Ejemplo : Hacer ejercicio: cuando estas corriendo, te despiertas y dices quiero correr y tu ciclo es quiero correr poner pierna adelante, pierna atrás, pierna adelante, pierna atrás, respira, seguir corriendo mientras tenga energía, y cuando se acaba la energía termina. Hay una variable de la energía disponible para correr y esta se va disminuyendo hasta que parar.
Ejemplo 2: Mientras haya comida en el plato y tenga hambre seguiré comiendo, pero si alguna de estas dos (porque hay un y que indica que una de las dos debe cumplirse) deja de ser verdad entonces paro de comer y limpio el plato.
Interesante el uso de los ciclos en la programacion, escuche que hay algunos que permiten el desarrollo de los videojuegos al momento de pelear con los jefes. Es casi la misma logica cuando uno los quiere enfrentar. Interesante la verdad. A seguir
**He aquí un pequeño ciclo usando while;
La página no dejara de preguntar, ¿cuánto es 2+2?, hasta que no le ingresen una repuesta correcta. Ena este caso 4
**
<!DOCTYPE html>
<html lang=“es”>
<head>
<meta charset=“UTF-8”>
<title>matemática </title>
<script>
let repuesta;
while (repuesta != 4 ){
pregunta = prompt("¿Cuánto es (2 + 2)??");
repuesta = pregunta;
alert(" Respondiste: " + repuesta);
if (repuesta == 4){
alert("¡¡¡Felicidades eres un Genio!!!");
} else {
alert(" Respuesta incorrecta.\n Vuelve a intentarlo");
}
}
</script>
</head>
Los ciclos, bucles o loop son utilizados para realizar tareas repetitiivas basados en una condición, y terminan cuando la condición asignada a dicho bucle deje de cumplirse.
while( condicion) {
sentencia
}
while (haya comida en el plato) {
comer
}
Los tres tipos más comunes de bucles son:
• for
• while
• do while
Los ciclos son aquellos que nos permiten llegar desde un punto A a un punto B a partir de una cantidad de repeticiones que cumplen una condición y nos permiten tener flujos e trabajo más efectivos. “Ana Belisa Martinez” Excelente clase del Curso de pensamiento lógico: Manejo de datos, estructuras y funciones!
Los ejemplos de Freddy son únicos y la forma en la que explica los conceptos de la programación lo hacen fácil, simple y accesible a toda persona que guste de aprender.
Mis felicitaciones a todo el equipo Platzi.
Hola Freddy disculpa pero te equivocas cuando dices que nada es eterno porque hay un Dios en los cielos que es eterno y nunca va a dejar de existir un saludo que Dios te Bendiga eres un exelente profesor
Bueno, si me costo hacerlo solo, aquí está solución que he desarrollado para hacer un contador de victorias, he dividido todo por funciones, entonces tengo así:
Un diccionario donde guardo los valores indicados por cada numero para selección, en caso que se ingrese un numero o cosa no ejecuta el código.
la función aleatoria para la pc.
una función para mostrar la selección del usuario y pc.
una función para evaluar el resultado.
una función para reiniciar el juego si ni el usuario o la pc llegan a tres victorias, en esta función devuelvo los valores a nulo o vació para que el usuario y la pc puedan elegir otra cosa.
una función para contar las victorias, en esta simplemente uso if para analizar quien llega primero a las 3 victorias, sino que se reinicie el juego. Ahora que lo pienso, puedo usar un ciclo para evitar usar if y else.
por ultimo una función que se llama jugar, el cual le da el valor a la pc, toma el valor del usuario y llama a las funciones mostrar mensaje, el resultado del combate y el contador de victorias.
ya finaliza el código llamando la función jugar para que todo se ejecute, está es la solución que le dí, luego voy a probar el ciclo en contar las victorias.
<!DOCTYPE html><head><head><metacharset="utf-8"><title>TopClassicGames</title><script>var piedraPapelTijera = {
"1": "piedra🥌",
"2": "papel📰",
"3": "tijera✂"
};
functionaleatorioPc(min, max){
returnMath.floor(Math.random()*(max - min + 1) +1)
}
var jugador = "";
var pc = "";
var victoriasJugador = 0;
var victoriasPc = 0;
functionmostrarEleccion(){
alert("has ecogido ==> " + piedraPapelTijera[jugador])
alert("Pc ha elegido ==> " + piedraPapelTijera[pc])
};
functionresultadoCombate(){
if (jugador == pc){
alert("Empate😑");
} elseif(jugador == 1 && pc == 3 || jugador == 2 && pc == 1 || jugador == 3 && pc ==2){
alert("has ganado😄");
victoriasJugador ++;
} else{
alert("Perdiste😌");
victoriasPc ++;
}
}
functionreiniciarJuego(){
jugador = "";
pc = "";
jugar();
}
functioncontadorVictorias(){
if(victoriasJugador == 3){
alert("Has ganado, obtenido 3 Victorias")
} elseif(victoriasPc == 3){
alert("Has perdido, has obtenido 3 derrotas")
} else {
reiniciarJuego()
}
}
functionjugar(){
pc = aleatorioPc(1,3);
jugador;
do {jugador = prompt("Escoge: 1 ==> Piedra🥌, 2 ==> Papel📰, 3 ==> Tijera✂");
} while(!(jugador in piedraPapelTijera));
mostrarEleccion();
resultadoCombate();
contadorVictorias();
}
jugar();
</script></head><body><h1>Piedra, papel o tijera</h1></body></head>
Así se ve mi código, lo hice antes de ver la explicación de Freddy, había visto el curso anterior de programación así que usé mis conocimientos sobre el loop for. La última condición parece algo extraña
¿Por qué si partida es == a rondas (3) - 1?
Sencillamente porque como partida inicia en “0” y el loop se ejecuta una última vez cuando partida es “2” necesito hacer esa pequeña operación aritmética…
Pero quizás alguien me dirá, oye, podrías ahorrarte ese mambo mental si solo pusieras el loop como:
for(let partida = 1; partida <= rondas; partida++)
{
etcétera.
}
Y yo te diré…que tienes razón, me di cuenta ahora xd
Discrepo con lo de cortar los ciclos como práctica generalizada. Si el lenguaje de programación permite ejecuciones paralelas, es posible y muy útil tener ciclos infinitos. En Scratch por ejemplo se usa mucho. No siempre significa ejecutar las instrucciones dentro del bucle. Por ejemplo, en Unity por cada frame se invoca el método Update() de cada objeto.
<code><!DOCTYPE html><html><head><metacharset="utf-8" /><title>¿Que Probabilidad Hay?</title><script>functionprobable(inf, sup) {
returnMath.floor(Math.random() * (sup - inf + 1) + inf)
}
functionfaraon(love) {
let shady = ""if (love == 1) {
shady = "elegiste 1"
}elseif (love == 2) {
shady = "elegiste 2"
}elseif (love == 3) {
shady = "elegiste 3"
}else {
shady = "no elegiste correctamente, recarga la pajina"
}
}
let participante = 0let pregunta = ""let sup = 3let inf = 1let robot = probable(1,3)
alert("¿...que probabilidad hay...?")
alert("acuerdate que tienes que hacer una pregunta como: que probabilidad hay de que -- seas mi amigo? ASI QUE VAMOS!!!")
pregunta = prompt("Que probabilidad hay de que...?")
participante = prompt("elige numero de 1-3")
if (participante == 1) {
alert("elegiste el numero 1")
}elseif (participante == 2) {
alert("elegiste el numero 2")
}elseif (participante == 3) {
alert("elegiste el numero 3")
}else {
alert("no elegiste un numero o elegiste mal")
}
if (pregunta == "") {
alert("no preguntaste nada")
}
alert("Que probabilidad hay de que " + pregunta)
alert("(1)...uno...(1)")
alert("(2)...dos...(2)")
alert("(3)...tres...(3)")
//probabilidadif (robot == participante) {
alert("***hay probabilidad***")
}else {
alert("####no hay probabilidad###")
}
</script></head><body><h1>***Que probabilidad hay***</h1><p>que probabilidad hay de que te guste este juego</p><p>recarga para volver a jugar</p><p>...</p><p>creo que si hay probabilidad de que sigas jugando</p><p>recarga jejeje adios UwU</p></body></html>
aca mi juego basado en piedra papel o tijera, que probabilidad hay?
presente colombia
Jaja a este loop le agregaría el daño al hígado y a los riñones dependiendo del nivel de calidad de lo que comemos. a eso agregarle una base de datos que contenga la información de cada alimento en el plato.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.