1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> ALTAVEU: Anem a implementar un programa que sol · licita a l'usuari un nombre enter 3 00:00:03,230 --> 00:00:05,850 però segueix incitant per a un altre nombre enter fins 4 00:00:05,850 --> 00:00:07,590 que és nombre enter positiu. 5 00:00:07,590 --> 00:00:16,760 Bé, anem a escriure això, inclogui cs50.h, incloure estàndard dot io h, int 6 00:00:16,760 --> 00:00:18,010 principal [buit]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Ara anem a començar realment a sol · licitar al usuari per a aquest sencer sense perdre de 9 00:00:23,200 --> 00:00:25,570 importar que volem Nova sol · licitud ells fins que 10 00:00:25,570 --> 00:00:26,860 nombre és en realitat positiva. 11 00:00:26,860 --> 00:00:30,160 >> Així que vaig a voler algun tipus de bucle construir, però un bucle que s'executa en 12 00:00:30,160 --> 00:00:31,200 almenys una vegada. 13 00:00:31,200 --> 00:00:34,810 I recorda el bucle do-while permet que fem exactament això. 14 00:00:34,810 --> 00:00:36,140 Anem a codificar aquesta dalt. 15 00:00:36,140 --> 00:00:39,210 >> Primer anem a declarar un int - anem a cridar n - en què emmagatzemar el 16 00:00:39,210 --> 00:00:41,030 sencer de l'usuari. 17 00:00:41,030 --> 00:00:44,250 Ara farem el següent. 18 00:00:44,250 --> 00:00:51,292 Printf, si us plau donar-me 1 int positiu. 19 00:00:51,292 --> 00:00:54,470 Ara anem a aconseguir que l'ús de int GetInt de la biblioteca CS50 20 00:00:54,470 --> 00:00:59,110 funció, n es fa GetInt. 21 00:00:59,110 --> 00:01:02,610 I ara que hem acabat de fer alguna cosa, però anem a voler fer això 22 00:01:02,610 --> 00:01:04,580 mentre que n és - 23 00:01:04,580 --> 00:01:05,480 què? - 24 00:01:05,480 --> 00:01:09,370 menys d'1, si de fet vull un enter positiu. 25 00:01:09,370 --> 00:01:11,670 >> Seguirem endavant ara i imprimir. 26 00:01:11,670 --> 00:01:17,590 Si tot està bé, gràcies per a la int positiu, 27 00:01:17,590 --> 00:01:19,360 punt i coma, deseu el fitxer. 28 00:01:19,360 --> 00:01:21,480 Ara anem a compilar i executar. 29 00:01:21,480 --> 00:01:25,550 >> Fer slash dot positiu positiu. 30 00:01:25,550 --> 00:01:27,470 I ara estic que se li demani per a un int positiu. 31 00:01:27,470 --> 00:01:29,630 Permetin-me coopero amb 1. 32 00:01:29,630 --> 00:01:31,330 Gràcies pel int positiu. 33 00:01:31,330 --> 00:01:33,650 >> Vegem ara, torneu a executar aquest programa i no cooperar. 34 00:01:33,650 --> 00:01:35,260 Si us plau, dóna'm un int positiu. 35 00:01:35,260 --> 00:01:37,300 Què hi ha de negatiu gener? 36 00:01:37,300 --> 00:01:37,910 Interessant. 37 00:01:37,910 --> 00:01:40,460 El programa ja està reprompted em per a un int. 38 00:01:40,460 --> 00:01:43,170 >> Siguem una mica més difícil amb 0. 39 00:01:43,170 --> 00:01:46,310 Encara no és un int positiu, així que anem a cooperar i aquesta vegada 40 00:01:46,310 --> 00:01:48,280 proporcionar, de nou, 1. 41 00:01:48,280 --> 00:01:49,990 Gràcies pel int positiu. 42 00:01:49,990 --> 00:01:54,300 >> Ara és important tenir en compte que declarat meva variable n en la línia 6, 43 00:01:54,300 --> 00:01:56,510 fora del bucle do-while. 44 00:01:56,510 --> 00:02:01,030 Si jo en comptes declarada n dins del meu do-while, específicament sobre, per exemple, 45 00:02:01,030 --> 00:02:06,230 línia 10, on també surt l'int de l'usuari, que int n només hauria 46 00:02:06,230 --> 00:02:09,904 existit dins dels confins de la arrissat claus que estan actualment en 47 00:02:09,904 --> 00:02:12,320 la línia 8 i en la línia 11. 48 00:02:12,320 --> 00:02:16,570 >> En altres paraules, n seria com abast l'interior d'aquest bucle do-while. 49 00:02:16,570 --> 00:02:20,390 Però el problema és que també que voleu utilitzar n en la línia 12 50 00:02:20,390 --> 00:02:21,900 dins de la condició. 51 00:02:21,900 --> 00:02:26,120 Així que, encara que no es veu tan bastant, és molt deliberat que 52 00:02:26,120 --> 00:02:28,210 n es declara fora aquest bucle do-while. 53 00:02:28,210 --> 00:02:29,838