WEBVTT 00:00:00.700 --> 00:00:07.260 Hablemos de ciclos. Aquí tengo un ciclo "while" con unas pocas líneas de código, puedo escribir este mensaje hasta el fondo de la pantalla. 00:00:07.260 --> 00:00:10.335 Si cambio el mensaje como lo hago aquí, ya sabes, para mejorarlo, 00:00:10.335 --> 00:00:11.926 todo esto cambia. 00:00:11.926 --> 00:00:15.833 Así que ¿cómo funciona esto? Bueno, podemos revisar este código en un momento. 00:00:15.833 --> 00:00:19.422 Pero primero vamos a regresarnos un poco y pensar cómo escribiríamos este programa 00:00:19.422 --> 00:00:22.471 usando sólo lo que sabemos hasta ahora sin utilizar los ciclos. 00:00:22.471 --> 00:00:26.751 Así que para hacer eso, en realidad vamos a escribir mucho texto una y otra vez ¿cierto? 00:00:26.751 --> 00:00:32.590 Vamos a decir, "text(message..." y voy ponerlo en primer lugar, y ahora sólo es cuestión de repetir esto 00:00:32.590 --> 00:00:36.336 suficientes veces hasta que lleguemos hasta abajo. 00:00:36.336 --> 00:00:38.949 Y eso nos va a costar mucho trabajo, ¿cierto? 00:00:38.949 --> 00:00:42.753 Porque la parte de abajo está muy lejos. Y esto se vuelve peor si tú 00:00:42.753 --> 00:00:46.758 me señalas que esta posición no debe ser 70, en realidad debe estar más cerca 00:00:46.758 --> 00:00:50.709 debe ser 60. Y ahora esto afecta a este porque también debe ser más pequeño 00:00:50.709 --> 00:00:55.036 y también afecta todos los demás textos que tengamos. 00:00:55.036 --> 00:00:58.261 Y de hecho, esto nos va a tomar más tiempo hasta llegar abajo. 00:00:58.261 --> 00:01:02.176 Así que es realmente una pena, pero afortunadamente tenemos ciclos que nos ayudan. 00:01:02.176 --> 00:01:06.210 A partir de ahora, cada vez que veas un código repetitivo como éste, tu primer pensamiento debe ser: 00:01:06.210 --> 00:01:10.087 ¿Podría usar un ciclo? Un ciclo nos permitirá repetir esta porción de código una y otra y 00:01:10.087 --> 00:01:13.671 otra vez, haciendo sólo pequeños cambios cada vez. 00:01:13.671 --> 00:01:17.868 Así que aquí tenemos la manera de reescribir este código con un ciclo. Para iniciar necesitamos escribir: "while", 00:01:17.868 --> 00:01:22.089 los paréntesis, y las llaves. Vamos a usar este mensaje, pero... 00:01:22.089 --> 00:01:26.301 esto es porque no hemos terminado todavía. No te preocupes, se irá cuando terminemos. 00:01:26.301 --> 00:01:30.810 Así que cada vez que escribas un ciclo necesitas responder tres preguntas clave. 00:01:30.825 --> 00:01:32.940 Y aquí están... 00:01:32.940 --> 00:01:37.371 Entonces la primera pregunta es: ¿Qué es lo que quiero repetir? 00:01:37.371 --> 00:01:41.466 Y lo que sea que quiera repetir debe ir entre las llaves. 00:01:41.466 --> 00:01:46.198 Así que en este caso queremos repetir la función "text", entonces vamos a ponerla aquí. 00:01:46.198 --> 00:01:49.571 Pero es un poco absurdo ¿no? Porque vamos a repetir simplemente 00:01:49.571 --> 00:01:54.197 la misma llamada a la función "text" una y otra vez, lo cual no tienen ninguna razón, necesitamos que algo cambie. 00:01:54.197 --> 00:01:57.710 Esto nos lleva a la segunda pregunta: ¿Qué es lo que quiero cambiar cada vez? 00:01:57.710 --> 00:02:01.423 Entonces lo que queremos cambiar es la posición de "y", ¿cierto? Queremos que sea 60 y luego queremos 00:02:01.423 --> 00:02:05.503 que sea 80. Así que haremos una variable para eso. 00:02:05.503 --> 00:02:09.476 La llamaremos "y" porque es la posición de "y". Así que vamos a declarar la variable 00:02:09.476 --> 00:02:13.376 aquí arriba. Y la voy a inicializar en 40. Y ahora finalmente, lo que necesitamos hacer es 00:02:13.376 --> 00:02:17.205 cambiar "y". Podemos hacer eso aquí abajo, y decimos "y" es igual a "y" más 20, 00:02:17.205 --> 00:02:21.088 y "y" será más grande cada vez. Y de hecho, podemos usar 00:02:21.088 --> 00:02:24.745 aquí nuestras lecciones sobre cómo escribir incrementos. Continuamos 00:02:24.745 --> 00:02:29.092 y usamos un atajo para el incremento. Esto es fantástico, ahora 00:02:29.092 --> 00:02:32.705 necesitamos hacer la tercera pregunta: ¿Hasta cuándo debemos repetir esto? 00:02:32.705 --> 00:02:36.531 Bueno, queremos hacer esto una y otra y otra vez, pero en realidad no queremos que sea para siempre, ¿cierto? 00:02:36.531 --> 00:02:41.252 Si lo hacemos para siempre, en primer lugar es tener que esperar mucho tiempo, y en segundo lugar esto podría bloquear tu navegador. 00:02:41.252 --> 00:02:44.471 Pero afortunadamente no es así. En realidad sólo 00:02:44.471 --> 00:02:48.371 lo queremos hacer hasta llegar a la parte inferior de la pantalla, ¿cierto? Lo que significa que lo queremos hacer 00:02:48.371 --> 00:02:52.469 siempre y cuando "y" sea menor que 400. Entonces ponemos eso aquí, y 00:02:52.469 --> 00:02:56.426 ¡Terminamos! tenemos este mensaje escrito hasta abajo de la pantalla. 00:02:56.426 --> 00:02:59.920 Y puedes ver que esta forma de hacerlo es más simple que nuestro intento anterior, que 00:02:59.920 --> 00:03:04.175 nos tomó casi lo mismo escribirlo, pero no teníamos ni la cuarta parte terminada. 00:03:04.175 --> 00:03:08.090 Así que nos podemos deshacer de eso, y aquí tenemos nuestro programa. 00:03:08.090 --> 00:03:11.711 Ahora vamos a tratar de entender mejor qué es lo que está pasando. Para hacerlo, voy a 00:03:11.711 --> 00:03:15.634 imprimir cada vez. Voy a decir "y is now" ("y" es ahora) y aquí abajo 00:03:15.634 --> 00:03:19.410 voy a poner "y" en la parte final del mensaje para que podamos verlo. 00:03:19.410 --> 00:03:23.343 Entonces en este momento el valor está cambiando en 20 cada vez, y podemos cambiar 00:03:23.343 --> 00:03:27.257 esto solamente cambiando esta variable aquí. Pueden hacer que cambie, en 50 00:03:27.257 --> 00:03:31.426 cada vez. Y ahora está cambiando 50 cada vez. Del mismo modo, 00:03:31.426 --> 00:03:35.578 puedes continuar y jugar con estos otros valores y cambiarlos. 00:03:35.578 --> 00:03:39.201 Y puedes ver cómo afecta eso, ya sabes, cuándo el programa debe terminar. 00:03:39.201 --> 00:03:44.007 Así que para entender esto, puedes pensar en esto como una especie 00:03:44.007 --> 00:03:47.342 de sentencia "if". Aquí tenemos nuestra expresión booleana 00:03:47.342 --> 00:03:52.009 justo como lo aprendimos. Y luego, hacemos que esto sea el cuerpo de la sentencia 00:03:52.009 --> 00:03:55.469 sólo si la expresión booleana es verdadera, de otra manera saltamos al final. 00:03:55.469 --> 00:03:59.093 Pero lo que es interesante es que en el ciclo "while" tenemos en realidad 00:03:59.093 --> 00:04:03.864 una cosa secreta el final que dice "regresa al principio del ciclo". 00:04:03.864 --> 00:04:07.202 Y lo que esta instrucción secreta significa es que 00:04:07.202 --> 00:04:11.071 en lugar de seguir adelante, como cuando usamos la sentencia "if", 00:04:11.071 --> 00:04:15.032 cada vez que se ejecuta el cuerpo del ciclo regresamos al principio y revisamos 00:04:15.032 --> 00:04:19.204 si la condición sigue siendo verdadera. Y si es verdadera seguimos adelante para repetir 00:04:19.204 --> 00:04:23.238 el ciclo una vez más. Y cómo ya te habrás imaginado, la segunda vez que repetimos, vamos a hacer la misma cosa... 00:04:23.238 --> 00:04:27.086 vamos a comprobar, ya sabes, vamos a ir al inicio y revisar ¿"y" sigue siendo menor que 00:04:27.086 --> 00:04:31.565 279? Y si es así, repetiremos una vez más y seguiremos revisando. 00:04:31.565 --> 00:04:34.591 Y si no lo es, regresamos al inicio aquí, y finalmente, 00:04:34.591 --> 00:04:38.478 salimos del ciclo y seguimos adelante con nuestro programa. 00:04:38.478 --> 00:04:42.703 Grandioso, hay muchas maneras interesantes de usar los ciclos, y vamos a aprender sobre eso pronto, pero 00:04:42.703 --> 00:04:45.913 por ahora, tuvimos un comienzo excelente.