[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.27,0:00:04.24,Default,,0000,0000,0000,,Estamos de regreso con un programa que imprime el arreglo de mis amigos. Dialogue: 0,0:00:04.24,0:00:07.01,Default,,0000,0000,0000,,Pero hay algo en esto que realmente me molesta. Dialogue: 0,0:00:07.01,0:00:11.30,Default,,0000,0000,0000,,Cada vez que añado un nuevo amigo a mi arreglo, tengo que añadir un comando "text" aquí abajo. Dialogue: 0,0:00:11.30,0:00:13.38,Default,,0000,0000,0000,,Digamos que añado a "Winston". Dialogue: 0,0:00:13.38,0:00:15.21,Default,,0000,0000,0000,,Bueno, no se muestra automáticamente. Dialogue: 0,0:00:15.21,0:00:23.13,Default,,0000,0000,0000,,Si quiero mostrarlo, tengo que ir aquí y escribir "text(myFriends[3]" , luego cambiar la posición de "y" y entonces vemos a "Winston". Dialogue: 0,0:00:23.13,0:00:24.85,Default,,0000,0000,0000,,Eso es mucho trabajo. Dialogue: 0,0:00:24.85,0:00:31.69,Default,,0000,0000,0000,,Yo quisiera que cada vez que añado a alguien a mi arreglo se ejecute el comando "text" automáticamente. Dialogue: 0,0:00:31.69,0:00:34.74,Default,,0000,0000,0000,,Bueno, ¿recuerdas cuando aprendimos de ciclos? Dialogue: 0,0:00:34.74,0:00:38.38,Default,,0000,0000,0000,,Usar ciclos es una gran manera de repetir la misma porción de código muchas veces en una fila. Dialogue: 0,0:00:38.38,0:00:43.27,Default,,0000,0000,0000,,Como si quisiéramos tener un montón de árboles en una fila o un montón de globos. Dialogue: 0,0:00:43.27,0:00:49.63,Default,,0000,0000,0000,,Bueno, pues los ciclos también son una solución para correr una porción de código para cada elemento de un arreglo. Dialogue: 0,0:00:49.63,0:00:57.07,Default,,0000,0000,0000,,De hecho, usarás un ciclo casi siempre que uses arreglos. Funcionan muy bien juntos. Dialogue: 0,0:00:57.07,0:01:03.74,Default,,0000,0000,0000,,Así que para mostrarte lo que quiero decir, usemos un ciclo para desplegar los nombres de mis amigos, en lugar de tener todos estos comandos de texto. Dialogue: 0,0:01:03.74,0:01:07.80,Default,,0000,0000,0000,,Así que empezaremos con las tres preguntas que siempre nos hacemos cuando queremos usar un ciclo. Dialogue: 0,0:01:07.80,0:01:13.18,Default,,0000,0000,0000,,Primera, ¿qué es lo que quiero repetir? Bueno, revisemos aquí. ¿Qué es lo que se está repitiendo? El comando "text". Dialogue: 0,0:01:13.18,0:01:26.07,Default,,0000,0000,0000,,¿Qué es lo que quiero cambiar cada vez? Bueno, déjenme ver qué es diferente. La posición de "y" y el índice, ¿cierto? Así que lo que queremos cambiar es el número de amigo y la posición de "y". Dialogue: 0,0:01:26.07,0:01:33.27,Default,,0000,0000,0000,,¿Hasta cuándo quiero repetir? Bueno, queremos repetir hasta que no haya más amigos. Dialogue: 0,0:01:33.27,0:01:37.44,Default,,0000,0000,0000,,Así que ahora sabemos lo que queremos, y podemos hacer el ciclo. Dialogue: 0,0:01:37.44,0:01:44.38,Default,,0000,0000,0000,,Empezaremos con una variable que será un contador, para llevar un seguimiento de dónde estamos en el ciclo. Así que digamos "var friendNum = 0;" Dialogue: 0,0:01:44.38,0:01:50.47,Default,,0000,0000,0000,,Vamos a empezar con 0 porque recuerden que 0 es el primer elemento del arrego, no 1. Dialogue: 0,0:01:50.55,0:01:57.77,Default,,0000,0000,0000,,Luego tenemos nuestro ciclo "while". Así que diremos "while(friendNum < myFriends.lenght)". (Mientras la variable "friendNum" sea menor que "myFriends.lenght"). Dialogue: 0,0:01:57.77,0:02:04.17,Default,,0000,0000,0000,,Así que vamos a comparar el contador actual con el total de elementos del arreglo. Dialogue: 0,0:02:04.17,0:02:06.99,Default,,0000,0000,0000,,Y es dentro del ciclo, donde usamos el comando "text". Dialogue: 0,0:02:06.99,0:02:14.59,Default,,0000,0000,0000,,Así que decimos "text(myFriends[" y aquí, en lugar de un número, ponemos la variable "friendNum" porque "friendNum" representa el elemento actual. Dialogue: 0,0:02:14.59,0:02:17.96,Default,,0000,0000,0000,,Y luego voy a poner esta posición por ahora. Dialogue: 0,0:02:17.96,0:02:25.71,Default,,0000,0000,0000,,Aquí nos marca un error de ciclo infinito porque en realidad no hemos cambiado nada en "friendNum". Dialogue: 0,0:02:25.71,0:02:33.55,Default,,0000,0000,0000,,Recuerda, necesitamos incrementar "friendNum" cada vez, de otra manera el ciclo correrá de manera indefinida porque la condición siempre será verdadera. Dialogue: 0,0:02:33.55,0:02:38.43,Default,,0000,0000,0000,,Veo que algo pasa. Voy a poner comentarios en el código anterior. Para que pueda ver realmente qué está pasando. Dialogue: 0,0:02:38.43,0:02:43.61,Default,,0000,0000,0000,,Lo que tenemos aquí es que hemos mostrado todos los nombres, pero están unos encima de otros. Dialogue: 0,0:02:43.61,0:02:45.71,Default,,0000,0000,0000,,Así que tenemos que cambiar la posición de "y". Dialogue: 0,0:02:45.71,0:02:50.21,Default,,0000,0000,0000,,Digamos "friendNum" multiplicado por 30. Dialogue: 0,0:02:50.21,0:02:55.13,Default,,0000,0000,0000,,Ok, eso está bien, pero "Sophia" está fuera de la pantalla, y "Sophia" no va a estar muy contenta si se da cuenta de esto. Dialogue: 0,0:02:55.13,0:02:59.63,Default,,0000,0000,0000,,Así que sumemos 30 a esto. Ahora todos están recorridos en 30. Dialogue: 0,0:02:59.63,0:03:04.29,Default,,0000,0000,0000,,¡Hermoso! Ahora puedes ver que tenemos un ciclo que despliega nuestro arreglo. Dialogue: 0,0:03:04.29,0:03:13.57,Default,,0000,0000,0000,,Y eso significa que si añadimos más personas como "OhNoes Guy", o tal vez a "Sal", si lo añado a mi arreglo entonces "Sal" va a ser mi amigo. ¡Impresionante! Ahora él es mi amigo. Dialogue: 0,0:03:13.57,0:03:21.27,Default,,0000,0000,0000,,Y puedes ver que automáticamente se muestran los amigos nuevos, porque siempre se recorre todo el arreglo. Dialogue: 0,0:03:21.27,0:03:24.30,Default,,0000,0000,0000,,Así que podemos borrar nuestro código anterior. Ya no lo necesitamos. Dialogue: 0,0:03:24.30,0:03:28.24,Default,,0000,0000,0000,,Y vamos a recorrer el código y revisar lo que hace. Dialogue: 0,0:03:28.24,0:03:31.63,Default,,0000,0000,0000,,Comenzamos con "friendNum" igual a cero. Dialogue: 0,0:03:31.63,0:03:34.67,Default,,0000,0000,0000,,Verificamos si "friendNum" es menor que la longitud actual de arreglo. Dialogue: 0,0:03:34.67,0:03:37.84,Default,,0000,0000,0000,,Así que sabemos que cero es menor que 6. Eso es verdad. Dialogue: 0,0:03:37.84,0:03:42.20,Default,,0000,0000,0000,,Entonces vamos aquí dentro y decimos que imprima el elemento "friendNum" del arreglo "myFriends" Dialogue: 0,0:03:42.20,0:03:44.29,Default,,0000,0000,0000,,Éste será cero, la primera vez. Dialogue: 0,0:03:44.29,0:03:47.30,Default,,0000,0000,0000,,Y luego será igual a 30 más cero por 30. Dialogue: 0,0:03:47.30,0:03:53.71,Default,,0000,0000,0000,,Así que despliega "Sophia" en 10 y 30. Es lo que hace. Dialogue: 0,0:03:53.71,0:03:56.30,Default,,0000,0000,0000,,Y luego "friendNum++". Así que ahora "friendNum" es 1. Dialogue: 0,0:03:56.30,0:04:00.24,Default,,0000,0000,0000,,Y luego regresa al principio y dice: "Ok, ¿1 es menor que 'myFriends.lenght'? Sí, sí lo es". Dialogue: 0,0:04:00.24,0:04:02.46,Default,,0000,0000,0000,,Y continúa, continúa y continúa. Dialogue: 0,0:04:02.46,0:04:10.94,Default,,0000,0000,0000,,Y finalmente llegamos a "Sal". Recuerda que "Sal" es el sexto elemento en el arreglo, pero su índice es 5, porque empezamos en cero. Dialogue: 0,0:04:10.94,0:04:13.30,Default,,0000,0000,0000,,Entonces, ¿cinco es menor que seis? Sí. Dialogue: 0,0:04:13.30,0:04:15.46,Default,,0000,0000,0000,,Así que despliega "myFriends" índice 5. Dialogue: 0,0:04:15.46,0:04:21.63,Default,,0000,0000,0000,,Y luego esto es seis y decimos: "¿seis es menor que seis? No. Es igual. Dialogue: 0,0:04:21.63,0:04:25.44,Default,,0000,0000,0000,,Entonces esto es falso. Así que nunca desplegará el sexto elemento, Dialogue: 0,0:04:25.44,0:04:29.27,Default,,0000,0000,0000,,lo cual es bueno porque no hay nada en el índice seis. Dialogue: 0,0:04:29.27,0:04:32.77,Default,,0000,0000,0000,,Hay un sexto elemento, pero no hay nada en el índice seis. Dialogue: 0,0:04:32.77,0:04:38.57,Default,,0000,0000,0000,,Eso puede ser realmente confuso, el hecho de que haya un cero y un uno y todo eso, pero podrás manejarlo. Dialogue: 0,0:04:38.57,0:04:41.40,Default,,0000,0000,0000,,Muy bien, éste es nuestro ciclo. Dialogue: 0,0:04:41.40,0:04:45.04,Default,,0000,0000,0000,,Ahora, si quieres puedes usar un ciclo "for" si es que prefieres los ciclos "for". Dialogue: 0,0:04:45.04,0:04:52.21,Default,,0000,0000,0000,,Para usar un ciclo "for", escribiremos "for" y luego, "var friendNum = 0;" y luego tenemos nuestra condición Dialogue: 0,0:04:52.21,0:04:57.24,Default,,0000,0000,0000,,"friendNum < myFriend.lenght", Dialogue: 0,0:04:57.24,0:05:01.67,Default,,0000,0000,0000,,y luego escribimos nuestro incremento "friendNum++". Dialogue: 0,0:05:01.67,0:05:06.71,Default,,0000,0000,0000,,Y luego dentro del ciclo "for" ponemos esta línea de código aquí. Dialogue: 0,0:05:06.71,0:05:09.71,Default,,0000,0000,0000,,Y sólo cambiaré la "x" para que puedas ver Dialogue: 0,0:05:09.71,0:05:20.58,Default,,0000,0000,0000,,que hace exactamente lo mismo. Así que tú decides cuál ciclo usar, el punto es que uses un ciclo con tu arreglo, porque eso te hará muy poderoso.