1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> ALTAVOZ: Vamos a implementar un programa que solicita al usuario un número entero 3 00:00:03,230 --> 00:00:05,850 pero sigue incitándolos para otro número entero hasta 4 00:00:05,850 --> 00:00:07,590 que es número entero positivo. 5 00:00:07,590 --> 00:00:16,760 Bueno, vamos a escribir esto, incluya cs50.h, incluir estándar dot io h, int 6 00:00:16,760 --> 00:00:18,010 principal [vacío]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Ahora vamos a comenzar realmente a solicitar al usuario para este entero sin perder de 9 00:00:23,200 --> 00:00:25,570 importó que queremos Nueva solicitud ellos hasta que 10 00:00:25,570 --> 00:00:26,860 número es en realidad positiva. 11 00:00:26,860 --> 00:00:30,160 >> Así que voy a querer algún tipo de bucle construir, pero un bucle que se ejecuta en 12 00:00:30,160 --> 00:00:31,200 menos una vez. 13 00:00:31,200 --> 00:00:34,810 Y recuerda el bucle do-while permite que hagamos exactamente eso. 14 00:00:34,810 --> 00:00:36,140 Vamos a codificar esta arriba. 15 00:00:36,140 --> 00:00:39,210 >> Primero vamos a declarar un int - vamos a llamarlo n - en el que almacenar el 16 00:00:39,210 --> 00:00:41,030 entero del usuario. 17 00:00:41,030 --> 00:00:44,250 Ahora vamos a hacer lo siguiente. 18 00:00:44,250 --> 00:00:51,292 Printf, por favor déme un int positivo. 19 00:00:51,292 --> 00:00:54,470 Ahora vamos a conseguir que el uso de int GetInt de la biblioteca CS50 20 00:00:54,470 --> 00:00:59,110 función, n se hace GetInt. 21 00:00:59,110 --> 00:01:02,610 Y ahora que hemos terminado de hacer algo, pero vamos a querer hacer esto 22 00:01:02,610 --> 00:01:04,580 mientras que n es - 23 00:01:04,580 --> 00:01:05,480 qué? - 24 00:01:05,480 --> 00:01:09,370 menos de 1, si de hecho quiero un entero positivo. 25 00:01:09,370 --> 00:01:11,670 >> Vamos a seguir adelante ahora e imprimir. 26 00:01:11,670 --> 00:01:17,590 Si todo está bien, gracias para la int positivo, 27 00:01:17,590 --> 00:01:19,360 punto y coma, guarde el archivo. 28 00:01:19,360 --> 00:01:21,480 Ahora vamos a compilar y ejecutar. 29 00:01:21,480 --> 00:01:25,550 >> Hacer slash dot positivo positivo. 30 00:01:25,550 --> 00:01:27,470 Y ahora estoy que se le pida para un int positivo. 31 00:01:27,470 --> 00:01:29,630 Permítanme coopero con 1. 32 00:01:29,630 --> 00:01:31,330 Gracias por el int positivo. 33 00:01:31,330 --> 00:01:33,650 >> Veamos ahora, vuelva a ejecutar este programa y no cooperar. 34 00:01:33,650 --> 00:01:35,260 Por favor, dame un int positivo. 35 00:01:35,260 --> 00:01:37,300 ¿Qué hay de negativo 1? 36 00:01:37,300 --> 00:01:37,910 Interesante. 37 00:01:37,910 --> 00:01:40,460 El programa ya está reprompted me para un int. 38 00:01:40,460 --> 00:01:43,170 >> Seamos un poco más difícil con 0. 39 00:01:43,170 --> 00:01:46,310 Todavía no es un int positivo, así que vamos a cooperar y esta vez 40 00:01:46,310 --> 00:01:48,280 proporcionar, de nuevo, 1. 41 00:01:48,280 --> 00:01:49,990 Gracias por el int positivo. 42 00:01:49,990 --> 00:01:54,300 >> Ahora es importante tener en cuenta que declarado mi variable n en la línea 6, 43 00:01:54,300 --> 00:01:56,510 fuera del bucle do-while. 44 00:01:56,510 --> 00:02:01,030 Si yo en vez declarada n dentro de mi do-while, específicamente sobre, por ejemplo, 45 00:02:01,030 --> 00:02:06,230 línea 10, donde también sale el int de el usuario, que int n sólo tendría 46 00:02:06,230 --> 00:02:09,904 existido dentro de los confines de la rizado llaves que están actualmente en 47 00:02:09,904 --> 00:02:12,320 la línea 8 y en la línea 11. 48 00:02:12,320 --> 00:02:16,570 >> En otras palabras, n sería como alcance el interior de ese bucle do-while. 49 00:02:16,570 --> 00:02:20,390 Pero el problema es que también que desee utilizar n en la línea 12 50 00:02:20,390 --> 00:02:21,900 dentro de la condición. 51 00:02:21,900 --> 00:02:26,120 Así que, aunque no se ve tan bastante, es muy deliberado que 52 00:02:26,120 --> 00:02:28,210 n se declara fuera este bucle do-while. 53 00:02:28,210 --> 00:02:29,838