1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. Malan: Implémentons maintenant une fonction qui n'a pas seulement un côté 3 00:00:02,950 --> 00:00:05,920 effet, mais au lieu des rendements une valeur de retour. 4 00:00:05,920 --> 00:00:09,150 Plus précisément, nous allons mettre en œuvre une fonction appelé obtenir int positif dont 5 00:00:09,150 --> 00:00:11,490 but dans la vie est de faire exactement cela. 6 00:00:11,490 --> 00:00:14,500 Plus précisément, je voudrais utiliser cette fonction comme suit: - 7 00:00:14,500 --> 00:00:18,770 int N obtient obtenir int positif. 8 00:00:18,770 --> 00:00:23,640 Et puis imprimez f, grâce pour le i pour cent en 9 00:00:23,640 --> 00:00:26,490 espace réservé, virgule, fin. 10 00:00:26,490 --> 00:00:29,030 >> Maintenant, bien sûr, obtenir positif n'existe pas encore int. 11 00:00:29,030 --> 00:00:33,020 Donc, nous allons promettent de mettre en œuvre par ajoutant au début de mon dossier une ligne 12 00:00:33,020 --> 00:00:37,110 comme signifiant que cette fonction int sera de retour dans int - 13 00:00:37,110 --> 00:00:39,110 obtenir int positif. 14 00:00:39,110 --> 00:00:43,000 Et nous allons préciser explicitement que cette fonction ne prendra aucune entrée, et 15 00:00:43,000 --> 00:00:45,570 si ses arguments sont nuls. 16 00:00:45,570 --> 00:00:49,500 Allons maintenant au fond de mon dossier, tout simplement pour que je puisse garder principale en haut, 17 00:00:49,500 --> 00:00:52,220 effectivement mise en œuvre ou de définir cette fonction. 18 00:00:52,220 --> 00:00:55,120 >> D'abord, nous commençons avec le même signature, pour ainsi dire - 19 00:00:55,120 --> 00:00:59,140 int obtenir positif int vide. 20 00:00:59,140 --> 00:01:01,910 Et maintenant, nous allons mettre en oeuvre obtenir int positif comme suit. 21 00:01:01,910 --> 00:01:05,410 Déclarons un int, également appelé N, mais nous pourrions l'appeler presque tout 22 00:01:05,410 --> 00:01:11,360 nous aimerions, procédez comme suit tandis que d'autres condition est vraie, et nous allons revenir à 23 00:01:11,360 --> 00:01:13,030 cette condition dans un moment. 24 00:01:13,030 --> 00:01:20,800 Imprimer f, donnez-moi s'il vous plaît un int positif, et maintenant nous allons utiliser Get int de 25 00:01:20,800 --> 00:01:23,290 la bibliothèque de CS50 à fait obtenir que int. 26 00:01:23,290 --> 00:01:28,210 >> Mais dans mon état, nous allons le faire boucle tant que N est inférieur à 1. 27 00:01:28,210 --> 00:01:31,260 En d'autres termes, tant que l'utilisateur ne coopère pas en me fournissant 28 00:01:31,260 --> 00:01:36,260 avec un int positif, permettez-moi de re-rapide lui encore, et encore, et encore 29 00:01:36,260 --> 00:01:37,720 jusqu'à ce qu'il ou elle fait. 30 00:01:37,720 --> 00:01:40,360 Mais je n'ai pas encore fini, car à l' fin de cette fonction, je dois 31 00:01:40,360 --> 00:01:42,210 faire quelque chose avec cette entrée. 32 00:01:42,210 --> 00:01:46,710 Et donc je vais aller sur le retour avec une ligne comme fin de retour 33 00:01:46,710 --> 00:01:52,850 point-virgule, ce qui ramène une réelle int pour principal qui a appelé cette fonction. 34 00:01:52,850 --> 00:01:56,810 Maintenant, il est intéressant de noter que, même si obtenir des rendements positifs dans int int, c'est 35 00:01:56,810 --> 00:02:00,470 certainement très bien pour elle pour revenir un int positif spécifiquement. 36 00:02:00,470 --> 00:02:04,170 Il n'est pas un type de données spécial pour entier positif spécifiquement, nous 37 00:02:04,170 --> 00:02:06,490 il suffit d'utiliser le construit en "int". 38 00:02:06,490 --> 00:02:11,250 >> Maintenant de retour à la ligne neuf, remarque que je suis imprimer N. Mais le N dans cette ligne 39 00:02:11,250 --> 00:02:13,970 appartient à la N qui est déclaré en ligne huit. 40 00:02:13,970 --> 00:02:17,840 Ainsi, il s'avère que vous ne pouvez absolument avoir les variables portant le même nom si 41 00:02:17,840 --> 00:02:20,250 tant qu'ils existent à l'intérieur des portées différentes. 42 00:02:20,250 --> 00:02:24,950 Et de rappeler que la portée est définie par les accolades que plus étroitement 43 00:02:24,950 --> 00:02:27,620 entourer la variable que vous avez défini. 44 00:02:27,620 --> 00:02:30,370 >> Maintenant, nous allons compiler et exécuter ce programme. 45 00:02:30,370 --> 00:02:35,210 Faire fonctions 1, point réduire fonctions 1. 46 00:02:35,210 --> 00:02:40,040 Donnons-lui un positif int comme 50, et il dit merci pour le 50. 47 00:02:40,040 --> 00:02:43,180 Pendant ce temps, si nous ne coopérons pas, Exécutez de nouveau le programme, ce qui lui donne 48 00:02:43,180 --> 00:02:47,550 0, je suis invité à nouveau, ou de le donner 1 négative, je suis invité à nouveau. 49 00:02:47,550 --> 00:02:51,720 Mais si je ne coopèrent lui fournissant, dire, 50 ans, je suis remercié pour le 50. 50 00:02:51,720 --> 00:02:54,590