1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. Malan: Ara anem a implementar un funció que no només tenen un costat 3 00:00:02,950 --> 00:00:05,920 efecte, però en canvi torna un valor de retorn. 4 00:00:05,920 --> 00:00:09,150 En concret, anem a implementar una funció anomenat aconseguir int positiu la 5 00:00:09,150 --> 00:00:11,490 propòsit en la vida és fer exactament això. 6 00:00:11,490 --> 00:00:14,500 En concret, m'agradaria utilitzar aquesta funció de la següent manera - 7 00:00:14,500 --> 00:00:18,770 int N aconsegueix obtenir int positiu. 8 00:00:18,770 --> 00:00:23,640 I després print f, gràcies per al percentatge i com una 9 00:00:23,640 --> 00:00:26,490 marcador de posició, coma, fi. 10 00:00:26,490 --> 00:00:29,030 >> Bé, és clar, obtenir positiu int encara no existeix. 11 00:00:29,030 --> 00:00:33,020 Així que anem a prometre per posar-lo en pràctica per afegint a la part superior del meu arxiu una línia 12 00:00:33,020 --> 00:00:37,110 com int vol dir que aquesta funció tornarà a int - 13 00:00:37,110 --> 00:00:39,110 aconseguir int positiu. 14 00:00:39,110 --> 00:00:43,000 I anem a especificar explícitament que aquesta funció no prendrà cap entrada, i 15 00:00:43,000 --> 00:00:45,570 pel que els seus arguments són nuls. 16 00:00:45,570 --> 00:00:49,500 Ara anem a la part inferior del meu arxiu, simplement perquè jo pugui mantenir principal sobre de la tapa, 17 00:00:49,500 --> 00:00:52,220 realment implementar o definir aquesta funció. 18 00:00:52,220 --> 00:00:55,120 >> Primer vam començar amb la mateixa signatura, per dir-ho - 19 00:00:55,120 --> 00:00:59,140 int aconseguir positiva int buit. 20 00:00:59,140 --> 00:01:01,910 I ara anem a implementar arribar int positiu de la següent manera. 21 00:01:01,910 --> 00:01:05,410 Anem a declarar un int, també anomenada N, però podríem anomenar gairebé qualsevol cosa 22 00:01:05,410 --> 00:01:11,360 ens agradaria, feu el següent mentre que alguns condició és veritable, i tornarem a 23 00:01:11,360 --> 00:01:13,030 aquesta condició en un moment. 24 00:01:13,030 --> 00:01:20,800 Imprimir f, si us plau dóna'm un int positiu, i ara farem servir Get int de 25 00:01:20,800 --> 00:01:23,290 la biblioteca CS50 a realitat aconseguir que el int. 26 00:01:23,290 --> 00:01:28,210 >> Però en la meva condició, farem això bucle sempre i quan N és menor que 1. 27 00:01:28,210 --> 00:01:31,260 En altres paraules, sempre que l'usuari no coopera proporcionant- 28 00:01:31,260 --> 00:01:36,260 amb un int positiu, que em re-prompt ell o ella de nou, i una altra, i una altra 29 00:01:36,260 --> 00:01:37,720 fins que ell o ella fa. 30 00:01:37,720 --> 00:01:40,360 Però jo no he acabat encara, perquè en el final d'aquesta funció que necessito 31 00:01:40,360 --> 00:01:42,210 realment fer alguna cosa amb aquesta entrada. 32 00:01:42,210 --> 00:01:46,710 I així em vaig a anar a tornar amb una línia com a extrem de retorn 33 00:01:46,710 --> 00:01:52,850 punt i coma, tornant d'aquesta manera una real int to main que crida a aquesta funció. 34 00:01:52,850 --> 00:01:56,810 Ara val la pena assenyalar que tot i obtenir rendibilitats positives en int int, és 35 00:01:56,810 --> 00:02:00,470 sens dubte molt bé perquè torni 01:00 int positiu específicament. 36 00:02:00,470 --> 00:02:04,170 No hi ha un tipus de dades especial per enter positiu específicament, pel que 37 00:02:04,170 --> 00:02:06,490 només ha d'utilitzar el construït en el "int". 38 00:02:06,490 --> 00:02:11,250 >> Ara, de tornada a la línia 9, noto que estic imprimir N. Però el N en aquesta línia 39 00:02:11,250 --> 00:02:13,970 pertany a la N que es va declarar en línia vuit. 40 00:02:13,970 --> 00:02:17,840 Així que resulta que vostè pot tenir absolutament les variables amb noms idèntics de manera 41 00:02:17,840 --> 00:02:20,250 sempre que hi ha dins diferents àmbits. 42 00:02:20,250 --> 00:02:24,950 I recordem que l'abast està definit per les claus que més estretament 43 00:02:24,950 --> 00:02:27,620 envoltar la variable que ha definit. 44 00:02:27,620 --> 00:02:30,370 >> Ara anem a compilar i executar aquest programa. 45 00:02:30,370 --> 00:02:35,210 Fer les funcions 1, punt slash funcions 1. 46 00:02:35,210 --> 00:02:40,040 Anem a donar-li un positiu int-com 50, i diu gràcies pel 50. 47 00:02:40,040 --> 00:02:43,180 Mentrestant, si no cooperem, executar el programa de nou, donant-li 48 00:02:43,180 --> 00:02:47,550 0, estic incitar novament, o donant-li 1 negatiu, estic em demana una altra vegada. 49 00:02:47,550 --> 00:02:51,720 Però si jo no coopero dotant, dir, 50, Em va donar les gràcies pel 50. 50 00:02:51,720 --> 00:02:54,590