1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> COLUNA: Vamos implementar um programa que solicita ao usuário um número inteiro 3 00:00:03,230 --> 00:00:05,850 mas continua levando-os por outro inteiro até 4 00:00:05,850 --> 00:00:07,590 que é número inteiro positivo. 5 00:00:07,590 --> 00:00:16,760 Bem, vamos escrever isso, inclua cs50.h, incluem padrão io ponto h, int 6 00:00:16,760 --> 00:00:18,010 principal [vazio]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Agora vamos realmente começar a levar o usuário para este número inteiro, mantendo em 9 00:00:23,200 --> 00:00:25,570 importa que nós queremos Reprompt los até que 10 00:00:25,570 --> 00:00:26,860 número é realmente positivo. 11 00:00:26,860 --> 00:00:30,160 >> Então, eu vou querer algum tipo de looping construir, mas um circuito que executa a 12 00:00:30,160 --> 00:00:31,200 pelo menos uma vez. 13 00:00:31,200 --> 00:00:34,810 E recordar o laço do-while permite nos a fazer exatamente isso. 14 00:00:34,810 --> 00:00:36,140 Vamos codificar isso. 15 00:00:36,140 --> 00:00:39,210 >> Vamos primeiro declarar um int - vamos chamá-lo de n - na qual deseja armazenar o 16 00:00:39,210 --> 00:00:41,030 inteiro do usuário. 17 00:00:41,030 --> 00:00:44,250 Vamos agora fazer o seguinte. 18 00:00:44,250 --> 00:00:51,292 Printf, por favor me dê um int positivo. 19 00:00:51,292 --> 00:00:54,470 Vamos agora começar esse int usando GetInt da biblioteca CS50 20 00:00:54,470 --> 00:00:59,110 função, n fica GetInt. 21 00:00:59,110 --> 00:01:02,610 E agora que terminamos fazendo alguma coisa, mas vamos querer fazer isso 22 00:01:02,610 --> 00:01:04,580 enquanto n é - 23 00:01:04,580 --> 00:01:05,480 o quê? - 24 00:01:05,480 --> 00:01:09,370 menor que 1, se de fato quer um número inteiro positivo. 25 00:01:09,370 --> 00:01:11,670 >> Vamos em frente agora e imprimir. 26 00:01:11,670 --> 00:01:17,590 Se tudo estiver bem, obrigado para o int positivo, 27 00:01:17,590 --> 00:01:19,360 ponto e vírgula, salve o arquivo. 28 00:01:19,360 --> 00:01:21,480 Vamos agora compilar e executar. 29 00:01:21,480 --> 00:01:25,550 >> Fazer barra ponto positivo positivo. 30 00:01:25,550 --> 00:01:27,470 E agora eu estou sendo solicitado para um int positivo. 31 00:01:27,470 --> 00:01:29,630 Deixe-me cooperar com 1. 32 00:01:29,630 --> 00:01:31,330 Obrigado pela int positivo. 33 00:01:31,330 --> 00:01:33,650 >> Vamos agora executar novamente este programa e não cooperar. 34 00:01:33,650 --> 00:01:35,260 Por favor, me dê um int positivo. 35 00:01:35,260 --> 00:01:37,300 Como cerca de um negativo? 36 00:01:37,300 --> 00:01:37,910 Interessante. 37 00:01:37,910 --> 00:01:40,460 O programa já está reprompted me para um int. 38 00:01:40,460 --> 00:01:43,170 >> Vamos ser um pouco mais difícil com 0. 39 00:01:43,170 --> 00:01:46,310 Ainda sem int positivo, então vamos cooperar e desta vez 40 00:01:46,310 --> 00:01:48,280 proporcionar, outra vez, uma. 41 00:01:48,280 --> 00:01:49,990 Obrigado pela int positivo. 42 00:01:49,990 --> 00:01:54,300 >> Agora é importante notar que eu declarei meu n variável na linha 6, 43 00:01:54,300 --> 00:01:56,510 fora do loop do-while. 44 00:01:56,510 --> 00:02:01,030 Se eu em vez declarada n dentro da minha do-while loop, especificamente sobre, digamos, 45 00:02:01,030 --> 00:02:06,230 linha 10, onde eu também obter o int de o usuário, que int n teria apenas 46 00:02:06,230 --> 00:02:09,904 existia dentro dos limites do crespo chaves que estão atualmente no 47 00:02:09,904 --> 00:02:12,320 a linha 8 e na linha 11. 48 00:02:12,320 --> 00:02:16,570 >> Em outras palavras, n seria escopo dentro desse laço do-while. 49 00:02:16,570 --> 00:02:20,390 Mas o problema é que nós também quer usar n na linha 12 50 00:02:20,390 --> 00:02:21,900 dentro da condição. 51 00:02:21,900 --> 00:02:26,120 Assim, mesmo que ele não parece tão muito, é muito deliberada que 52 00:02:26,120 --> 00:02:28,210 n é declarado fora este laço do-while. 53 00:02:28,210 --> 00:02:29,838