DOUG LLOYD: Muy bien, así vamos a hablar de bucles. Así bucles son una especie de fresco porque permiten a su programa para ejecutar líneas de código Una y otra vez. En repetidas ocasiones, sin tener que copiar y pegar o de otra manera repetirlos. Hay tres principales tipos de bucles ya lo verás. Usted probablemente tendrá ocasión de utilizar cada uno de ellos a medida que avanza a través CS50. Algunos de estos bucles son bastante familiar para usted a partir de cero, así que de nuevo, como lo hicimos con los condicionales, pondremos al lado del otro si hay una analogía podemos sacar. En primer lugar es para siempre desde cero, que se compara con while (true). Esto es lo que llamamos un bucle infinito. Las líneas de código entre el rizado llaves, al igual que las piezas del rompecabezas que encajan dentro de la C del bloque de siempre, ejecutará varias veces de arriba a abajo, una y otra y otra vez, para siempre. Después de todo, si usted recuerda nuestra discusión de expresiones booleanas, verdadero es siempre cierto. Así que si lo que estamos haciendo algo tan largo como verdadero se cierto-- parece un poco Silly-- verdad siempre es cierto, por lo que siempre va a correr. Va a correr por siempre y siglos de los siglos hasta que encontrar una manera de salir de ella con una sentencia break, que a su vez, vimos hace un momento nos estaban hablando de interruptor. O de lo contrario sólo matar a nuestro programa, que dicho sea de paso, si alguna vez te encuentras en un situación con un bucle infinito y usted no sabe cómo detener su programa se ejecute. Sólo tiene que darle el control y C y que va a matar a su programa para usted. Pero esto, de nuevo, es llamado un bucle infinito. Es un bucle que se ejecutará siempre. Ahora, mientras bucles no son siempre infinito, porque también podemos sustituir el booleana expresión con algo un poco más útil que simplemente verdad. Así que aquí está otro ejemplo. Mientras que algunos Boolean y expresión y apoyos a continuación rizado. Eso es más o menos análoga repetir hasta que, a partir de cero. Aunque en un segundo, voy a explicar la diferencia. Así que en C, si la expresión booleana dentro del bucle while como resultado true, las líneas de código entre las llaves ejecutará repetidamente una y otra y otra vez hasta expresión booleana evalúa a falso. Así, por ejemplo, es posible que tener algún tipo de contador. Así que decir que al principio de este bucle decir int x es igual a cero. Mientras que x es menor que 100, hacer un par cosas dentro que las llaves, a continuación, en el final de su ciclo, usted dice x plus plus, que están incrementando x. Finalmente x obtendrán 100 y usted parar porque la condición x es menor que 100 ya no será cierto como pronto como x es igual a 100. 100 es no menor de 100. Ahora un tanto confusamente, el comportamiento del bloque cero se invierte. Así que tener mucho cuidado si se trata de su primera incursión en el uso de bucles. Básicamente, la repetición hasta el bloque en Rasguño se repetirá algo Una y otra vez, hasta que la expresión, el operador booleano expresión en el hexágono es cierto. Así será seguir haciendo hasta que sea cierto. Mientras tanto, el bucle while voluntad continuará hasta que es falsa. Así que son muy similares, pero hay esa poca distinción solo tener cuidado de todo lo que hagas su primera incursión de la transición Scratch en c. El siguiente tipo de bucle es en realidad bastante similar. Se llama el do while. Este bucle se ejecutará todas las líneas de código entre las llaves una vez, y luego se comprobará la expresión booleana. Si la expresión booleana evalúa como true, que va a volver atrás y repetir ese proceso una y otra y otra vez hasta la Booleana expresión se evalúa como falsa. Así que este bucle, a diferencia de un bucle while, es garantizado para funcionar al menos una vez. Esto puede ser muy útil. Por último, tenemos un bucle for. Para bucles son tipo de sintácticamente poco atractivo y hay mucho que hacer de aquí, así que tengan paciencia conmigo como tratamos de romper estas piezas separadas. En general, el caso de uso de un bucle for es usted quiero repetir algo un número específico de veces. En este ejemplo aquí, Tengo el bloque de repetición desde cero, que es análoga a la de bucle en C, repitiendo algo 10 veces. Y el bucle for en la izquierda hay que es un bucle de cuatro que haría lo mismo. Esto iría 10 veces. Contando desde cero, incrementar cada paso del bucle. Y seguimos haciendo eso hasta que i es menor que 10. Entonces, ¿qué sucede? Hay un montón de código de allí. Vamos a romper hacia abajo para lo que está sucediendo paso a paso a medida que cavar a través de un bucle for. La primera cosa que pasó es la variable contador es central. Todo a la izquierda de la primera punto y coma dentro del paréntesis se ejecuta. En este caso, estamos diciendo int i es igual a 0. Declarar una nueva variable llamada i, que las variables es un tipo entero y estamos diciendo que el valor en el interior esa variable va a ser cero. La segunda cosa que hacemos es entonces evaluamos inmediatamente la expresión booleana. Expresión booleana se encuentra en la medio de los dos puntos y comas. I es menos de 10. Eso es verdad, ¿no? Acabamos de decir i es igual a cero, y así 0 es menor que 10, y de modo que la condición que es verdadero y lo haremos ahora proceder a ejecutar el cuerpo del bucle. Si era falsa. Si, por ejemplo, le dije en lugar de i es igual a 0 no me dijo i es igual a 15, int i es igual a 15. Bueno 15 es no menos de 10, por lo que nunca entrar en el cuerpo del bucle debido a que la expresión booleana habría evaluar que es falsa. Después vamos a través de arriba a abajo, nos encontramos con que el cierre de corchete, una tercera cosa sucede. La variable contador es incrementado, o más bien, las líneas del código de un comunicado después de la segundo punto y coma dentro del para bucles paréntesis se ejecuta. Así que empezamos a cabo por diciendo int i es igual a 0. Luego comprobamos si o no la expresión booleana es verdadera. 0 es menor que, 10 por lo que es verdad. Así que vamos a proceder en el cuerpo del bucle. Las cosas van a suceder dentro del bucle, y cuando nos encontramos con que el rizado cerrar corsé, la próxima cosa que hacer es que decimos i plus, plus. Yo era cero ahora i es uno. Entonces, volvemos a comprobar el valor de la expresión booleana en el medio. Uno de ellos es menos de 10. Así que vamos a ir a través de este procesar una y otra vez. Vamos a llegar a la clausura llave de nuevo. Vamos a incrementamos i de 1 a 2 y 2-3. Y así sucesivamente y así sucesivamente y así sucesivamente, hasta que finalmente el valor de i se convierte en 10. Es 10 menos de 10? No. Contando desde 0, hemos ido a través de 10 iteraciones del bucle. Hemos repetido 10 veces, simplemente como lo hicimos en el bloque de Scratch. Y eso es básicamente el proceso para un bucle de cuatro. Ahora quitar la código real y poniéndolo en tan sólo algunas declaraciones generales básicos. Esto es lo que sucede. Todas las declaraciones en comenzar se ejecutan primero. Es posible que haya más de uno. Entonces, la expresión booleana se comprueba. Si la expresión se evalúa como verdadera, ejecutar el cuerpo del bucle de una sola vez. Si la expresión se evalúa false, hemos terminado. Nosotros no ejecutamos el cuerpo del bucle en absoluto. Después de que hemos ejecutado el cuerpo del bucle de una sola vez, entonces hacemos lo que está en la parte de la subasta no. Que suele ser va a ser algo así como i plus, plus o algo así, que modifica una variable de contador. Entonces, después de incrementamos, nos comprobar la expresión de nuevo y repetir los pasos una y otra y otra vez hasta la expresión es ya no es cierto. ¿Cuáles son los casos de uso de un bucle? Utilice utiliza un bucle while cuando quieres un bucle para repetir un número indeterminado de veces, pero que posiblemente podría no funcionar todo. Un ejemplo muy común de un tiempo de bucle se utiliza es ejecutar el flujo de control para un juego. Usted puede no saber cuánto tiempo la usuario va a estar jugando, pero desea conservar haciendo lo mismo. Actualización de las posiciones de varios sprites en el tablero. Usted quiere mantener las cosas movimiento en todo momento, pero usted no sabe cuando el usuario va a dejar de jugar o cuando van que se quede sin vidas. Así que un bucle while es realmente bueno para algo así. Eso es un buen caso de uso. Para un do while, es bastante similar. ¿Quieres un bucle para repetir un desconocido número de veces, pero al menos una vez. Usted puede usar esto para un juego también, pero un caso de uso muy común es preguntar al usuario para la entrada. En general, se podría decir algo al igual que, me da un número entero positivo, y es posible poner ese dentro de un do while. Por lo que siempre les pedirá a menos una vez para un número entero positivo. Si te dan un número entero positivo, es posible romper el bucle. Usted puede ser hecho. La expresión booleana en al mismo tiempo que hacer podría ser falso. Y no te pregunte de nuevo. Si te dan un número negativo donde que escriba alguna palabra o algo que es no es realmente útil para usted, es posible utilizar la do while para volver y hacer una y otra vez y otra vez. Usted definitivamente quiere pedir que te den un número una vez, pero usted no sabe cuántas veces después de que fueran plagas. Y así un do, mientras que es un gran uso caso para preguntar al usuario para la entrada. Y una de bucles uso caso típicamente es cuando desea repetir un bucle un número discreto de veces, aunque puede que no conocer el número de veces Actualmente el programa se compila. Así, por ejemplo, tal vez usted tiene un programa donde se solicita al usuario un número. Y entran 100. Y entonces su ciclo for voluntad en ese caso, correr 100 veces. O tal vez que entren 1000 en su programa y ejecute el bucle de 1.000 veces. Es un número específico de veces. Ellos no lo hacen necesariamente saber lo que ese número es el programa actualmente está compilado. No es como un bucle while donde podría ser infinito. Es más bien un número que simplemente no sabe. Ahora a pesar de que tengo esbozados todos estos casos de uso, usted debe saber que en muy mucho cada circunstancia, usted puede intercambiar todo tres de estos bucles. Puede utilizar un bucle en el que de lo contrario, utilizar un bucle while. Puede utilizar un bucle donde quiera tendrá que utilizar un do while y así sucesivamente. Puede ser un poco difícil a veces, por lo general, es una buena práctica para adherirse a un caso de uso típico. Utilice un do while si quería algo una vez, por lo menos. Utilice un bucle for si quieres hacer algo un número específico de veces. Después de todo, es por eso que hay tres tipos diferentes de bucles. Así que se pueden utilizar en el contexto adecuado. Pero usted puede intercambiar ellos si quieren. Si usted se siente cómodo con bucles mientras y siempre se desea utilizar mientras bucles. Es algo que usted puede hacer, aunque podría ser un poco sintácticamente complicado, donde un bucle for sería mucho más sencillo. Mi nombre es Doug Lloyd y esto es CS50.