1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> COLUMNA: Imos aplicar un programa que solicita ao usuario un número enteiro 3 00:00:03,230 --> 00:00:05,850 pero segue levando-os por outro enteiro ata 4 00:00:05,850 --> 00:00:07,590 que é enteiro positivo. 5 00:00:07,590 --> 00:00:16,760 Ben, imos escribir isto, inclúa cs50.h, inclúen estándar io punto h, int 6 00:00:16,760 --> 00:00:18,010 principal [baleiro]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Agora imos realmente comezar a levar o usuario para este número enteiro, mantendo en 9 00:00:23,200 --> 00:00:25,570 importa que queremos Reprompt los ata que 10 00:00:25,570 --> 00:00:26,860 número é realmente positivo. 11 00:00:26,860 --> 00:00:30,160 >> Entón, eu vou querer algún tipo de looping construír, pero un circuíto que executa a 12 00:00:30,160 --> 00:00:31,200 polo menos unha vez. 13 00:00:31,200 --> 00:00:34,810 E lembrar o lazo do-while permite nos a facer exactamente isto. 14 00:00:34,810 --> 00:00:36,140 Imos codificar iso. 15 00:00:36,140 --> 00:00:39,210 >> Imos primeiro declarar un int - imos chamalo n - na que desexa gardar o 16 00:00:39,210 --> 00:00:41,030 enteiro do usuario. 17 00:00:41,030 --> 00:00:44,250 Imos agora facer o seguinte. 18 00:00:44,250 --> 00:00:51,292 Printf, por favor me dea un int positivo. 19 00:00:51,292 --> 00:00:54,470 Imos agora comezar este int usando GetInt da biblioteca CS50 20 00:00:54,470 --> 00:00:59,110 función, n queda GetInt. 21 00:00:59,110 --> 00:01:02,610 E agora que terminamos facendo algo, pero imos querer facelo 22 00:01:02,610 --> 00:01:04,580 mentres n é - 23 00:01:04,580 --> 00:01:05,480 o que? - 24 00:01:05,480 --> 00:01:09,370 menor que 1, de feito Quere un enteiro positivo. 25 00:01:09,370 --> 00:01:11,670 >> Imos adiante agora e imprimir. 26 00:01:11,670 --> 00:01:17,590 Se todo está ben, grazas ao int positivo, 27 00:01:17,590 --> 00:01:19,360 punto e coma, salva o arquivo. 28 00:01:19,360 --> 00:01:21,480 Imos agora compilar e executar. 29 00:01:21,480 --> 00:01:25,550 >> Facer barra punto positivo positivo. 30 00:01:25,550 --> 00:01:27,470 E agora estou eu a ser solicitado para un int positivo. 31 00:01:27,470 --> 00:01:29,630 Déixeme cooperar con 1. 32 00:01:29,630 --> 00:01:31,330 Grazas pola int positivo. 33 00:01:31,330 --> 00:01:33,650 >> Imos agora realizar novamente este programa e non cooperar. 34 00:01:33,650 --> 00:01:35,260 Por favor, me dea un int positivo. 35 00:01:35,260 --> 00:01:37,300 Como cerca dun negativo? 36 00:01:37,300 --> 00:01:37,910 Interesante. 37 00:01:37,910 --> 00:01:40,460 O programa xa está reprompted me para un int. 38 00:01:40,460 --> 00:01:43,170 >> Imos ser un pouco máis difícil con 0. 39 00:01:43,170 --> 00:01:46,310 Aínda sen int positivo, así que imos cooperar e esta vez 40 00:01:46,310 --> 00:01:48,280 proporcionar, outra vez, unha. 41 00:01:48,280 --> 00:01:49,990 Grazas pola int positivo. 42 00:01:49,990 --> 00:01:54,300 >> Agora é importante ter en conta que declarei o meu n variable na liña 6, 43 00:01:54,300 --> 00:01:56,510 fóra do loop do-while. 44 00:01:56,510 --> 00:02:01,030 Se eu en vez declarada n dentro da miña do-while loop, especialmente sobre, digamos, 45 00:02:01,030 --> 00:02:06,230 liña 10, onde eu tamén obter o int de o usuario, que int n tería só 46 00:02:06,230 --> 00:02:09,904 existía dentro dos límites do crespo claves que están actualmente no 47 00:02:09,904 --> 00:02:12,320 a liña 8 e na liña 11. 48 00:02:12,320 --> 00:02:16,570 >> Noutras palabras, non sería ámbito dentro dese lazo do-while. 49 00:02:16,570 --> 00:02:20,390 Pero o problema é que nós tamén quere usar n na liña 12 50 00:02:20,390 --> 00:02:21,900 dentro da condición. 51 00:02:21,900 --> 00:02:26,120 Así, aínda que non parece tan moito, é moi deliberada que 52 00:02:26,120 --> 00:02:28,210 n é declarado fóra este lazo do-while. 53 00:02:28,210 --> 00:02:29,838