1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. Malan: Imos agora aplicar un función que non ten só unha banda 3 00:00:02,950 --> 00:00:05,920 efecto, pero en vez diso retorna un valor de retorno. 4 00:00:05,920 --> 00:00:09,150 En concreto, imos aplicar unha función chamado obter int positivo cuxo 5 00:00:09,150 --> 00:00:11,490 propósito na vida é facer exactamente isto. 6 00:00:11,490 --> 00:00:14,500 En concreto, gustaríame utilizar esta función do seguinte xeito - 7 00:00:14,500 --> 00:00:18,770 int N recibe obter int positivo. 8 00:00:18,770 --> 00:00:23,640 E, a continuación, imprimir f grazas á porcentaxe de i como un 9 00:00:23,640 --> 00:00:26,490 espazo reservado, coma final. 10 00:00:26,490 --> 00:00:29,030 >> Agora, por suposto, estar positivo int aínda non existe. 11 00:00:29,030 --> 00:00:33,020 Entón, imos prometer para implementar lo por engadindo ao principio do meu arquivo dunha liña 12 00:00:33,020 --> 00:00:37,110 como int o que significa que esta función volverá en int - 13 00:00:37,110 --> 00:00:39,110 obter int positivo. 14 00:00:39,110 --> 00:00:43,000 E imos indicar explicitamente que este función non terá ningunha entrada, e 15 00:00:43,000 --> 00:00:45,570 para que os seus argumentos son nulos. 16 00:00:45,570 --> 00:00:49,500 Imos agora no fondo do meu arquivo, simplemente para que eu poida manter principal encima, 17 00:00:49,500 --> 00:00:52,220 realmente aplicar ou establecer esta función. 18 00:00:52,220 --> 00:00:55,120 >> Primeiro imos comezar coa mesma sinatura, por así dicir - 19 00:00:55,120 --> 00:00:59,140 int obter int baleiro positivo. 20 00:00:59,140 --> 00:01:01,910 E agora imos aplicar obter int positivo como segue. 21 00:01:01,910 --> 00:01:05,410 Imos declarar un int, tamén chamado de N, pero poderiamos chamalo case calquera cousa 22 00:01:05,410 --> 00:01:11,360 queremos, faga o seguinte, mentres algúns condición é certa, e nós imos volver 23 00:01:11,360 --> 00:01:13,030 esta condición nun momento. 24 00:01:13,030 --> 00:01:20,800 Imprimir f, por favor me dea un int positivo, e agora imos usar Get int de 25 00:01:20,800 --> 00:01:23,290 a biblioteca CS50 realmente conseguir que int. 26 00:01:23,290 --> 00:01:28,210 >> Pero, na miña condición, imos facelo lazo mentres N é inferior a 1. 27 00:01:28,210 --> 00:01:31,260 Noutras palabras, sempre que o usuario non coopera por me proporcionar 28 00:01:31,260 --> 00:01:36,260 cun int positivo, déixeme volver preparado el ou ela de novo, e de novo, e de novo 29 00:01:36,260 --> 00:01:37,720 ata que el ou ela fai. 30 00:01:37,720 --> 00:01:40,360 Pero eu non estou preparado aínda, porque o final desta función que eu teño 31 00:01:40,360 --> 00:01:42,210 realmente facer algo con esa entrada. 32 00:01:42,210 --> 00:01:46,710 E así eu estou indo a ir en volver cunha liña como final retorno 33 00:01:46,710 --> 00:01:52,850 punto e coma, retornando, así, unha real int Visita que chamou esta función. 34 00:01:52,850 --> 00:01:56,810 Agora paga a pena notar que, a pesar de obter retorno positivos en int int, é 35 00:01:56,810 --> 00:02:00,470 certamente ben para que volva un int positivo especificamente. 36 00:02:00,470 --> 00:02:04,170 Non hai un tipo de datos especial para enteiro positivo en concreto, polo tanto, 37 00:02:04,170 --> 00:02:06,490 simplemente usar o construída en "int". 38 00:02:06,490 --> 00:02:11,250 >> Agora, de volta na liña nove, entender que eu son imprimir N. Pero a N nesta liña 39 00:02:11,250 --> 00:02:13,970 pertenza ao N, que está declarado na liña oito. 40 00:02:13,970 --> 00:02:17,840 Entón non é que pode perfectamente ter variables con nomes idénticos así 41 00:02:17,840 --> 00:02:20,250 desde que existen dentro diferentes ámbitos. 42 00:02:20,250 --> 00:02:24,950 E lembrar que o alcance é definido pola as claves que máis de preto 43 00:02:24,950 --> 00:02:27,620 introduza a variable que marcou. 44 00:02:27,620 --> 00:02:30,370 >> Agora imos compilar e executar este programa. 45 00:02:30,370 --> 00:02:35,210 Facer funcións 1, punto reducir funcións 1. 46 00:02:35,210 --> 00:02:40,040 Imos darlle un positivo int-como 50, e el di que grazas polo 50. 47 00:02:40,040 --> 00:02:43,180 Mentres tanto, se non cooperar, executar o programa de novo, dándolle 48 00:02:43,180 --> 00:02:47,550 0, estou solicitado de novo, ou dándolle 1 negativo, estou solicitado de novo. 49 00:02:47,550 --> 00:02:51,720 Pero se eu cooperar dando-lle, dicir, 50 anos, estou agradeceu a 50. 50 00:02:51,720 --> 00:02:54,590