1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. MALAN: Vediamo ora implementare una funzione che non solo ha un lato 3 00:00:02,950 --> 00:00:05,920 effetto, ma invece ritorni un valore di ritorno. 4 00:00:05,920 --> 00:00:09,150 In particolare, cerchiamo di implementare una funzione chiamato ottenere int positivo la cui 5 00:00:09,150 --> 00:00:11,490 scopo nella vita è quello di fare esattamente questo. 6 00:00:11,490 --> 00:00:14,500 In particolare, mi piacerebbe usare questa funzione come segue - 7 00:00:14,500 --> 00:00:18,770 int N ottiene ottenere int positivo. 8 00:00:18,770 --> 00:00:23,640 E poi la stampa f, grazie per la percentuale i come un 9 00:00:23,640 --> 00:00:26,490 segnaposto, virgola, fine. 10 00:00:26,490 --> 00:00:29,030 >> Ora, naturalmente, ottenere positive int non esiste ancora. 11 00:00:29,030 --> 00:00:33,020 Quindi cerchiamo di promessa per la sua attuazione da parte aggiungendo alla parte superiore del mio file una riga 12 00:00:33,020 --> 00:00:37,110 come int significa che questa funzione tornerà in int - 13 00:00:37,110 --> 00:00:39,110 ottenere int positivo. 14 00:00:39,110 --> 00:00:43,000 E cerchiamo di specificare esplicitamente che questo funzione non avrà alcun input, e 15 00:00:43,000 --> 00:00:45,570 così i suoi argomenti sono nulle. 16 00:00:45,570 --> 00:00:49,500 Diamo ora alla fine del mio file, semplicemente in modo che posso mantenere principale in alto, 17 00:00:49,500 --> 00:00:52,220 effettivamente attuare o definire questa funzione. 18 00:00:52,220 --> 00:00:55,120 >> Prima partiamo con la stessa firma, per così dire - 19 00:00:55,120 --> 00:00:59,140 int ottenere positivi int vuoto. 20 00:00:59,140 --> 00:01:01,910 Ed ora diamo implementare arrivare int positivo come segue. 21 00:01:01,910 --> 00:01:05,410 Facciamo dichiarare un int, chiamato anche N, ma potremmo chiamarlo quasi nulla 22 00:01:05,410 --> 00:01:11,360 vorremmo, effettuare le seguenti operazioni mentre alcuni condizione è vera, e ci tornerà a 23 00:01:11,360 --> 00:01:13,030 tale condizione in un momento. 24 00:01:13,030 --> 00:01:20,800 Stampa f, per favore mi dia un int positivo, e ora usiamo Get int da 25 00:01:20,800 --> 00:01:23,290 biblioteca CS50 effettivamente ottenere che int. 26 00:01:23,290 --> 00:01:28,210 >> Ma nella mia condizione, cerchiamo di fare questo ciclo finché N è minore di 1. 27 00:01:28,210 --> 00:01:31,260 In altre parole, così a lungo come l'utente non collabora fornendo me 28 00:01:31,260 --> 00:01:36,260 con un int positivo, mi permetta di ri-pronta lui o di lei, e ancora, e ancora 29 00:01:36,260 --> 00:01:37,720 fino a quando lui o lei fa. 30 00:01:37,720 --> 00:01:40,360 Ma non ho ancora finito, perché al fine di questa funzione ho bisogno di 31 00:01:40,360 --> 00:01:42,210 effettivamente fare qualcosa con quella di ingresso. 32 00:01:42,210 --> 00:01:46,710 E così ho intenzione di andare sulla restituzione con una linea come fine di ritorno 33 00:01:46,710 --> 00:01:52,850 virgola, riportando così un effettivo int al principale che ha chiamato questa funzione. 34 00:01:52,850 --> 00:01:56,810 Ora vale la pena notare che, anche se ottenere rendimenti positivi in ​​int int, è 35 00:01:56,810 --> 00:02:00,470 certamente bene per farlo tornare int positivo in particolare. 36 00:02:00,470 --> 00:02:04,170 Non c'è un tipo di dati speciale per intero positivo in particolare, in modo da 37 00:02:04,170 --> 00:02:06,490 è sufficiente utilizzare il built in "int". 38 00:02:06,490 --> 00:02:11,250 >> Ora torna alla linea nove, accorgo che sto stampando N. Ma la N in questa linea 39 00:02:11,250 --> 00:02:13,970 appartiene alla N che è dichiarata in linea di otto. 40 00:02:13,970 --> 00:02:17,840 Così si scopre che si può assolutamente avere variabili identicamente denominate così 41 00:02:17,840 --> 00:02:20,250 purché esistono all'interno diversi ambiti. 42 00:02:20,250 --> 00:02:24,950 E ricordare che la portata è definito da le parentesi graffe che più da vicino 43 00:02:24,950 --> 00:02:27,620 racchiudere la variabile che avete definito. 44 00:02:27,620 --> 00:02:30,370 >> Ora diamo compilare e eseguire questo programma. 45 00:02:30,370 --> 00:02:35,210 Fai funzioni 1, dot tagliare funzioni 1. 46 00:02:35,210 --> 00:02:40,040 Diamogli una positiva int-like 50, e dice grazie per il 50. 47 00:02:40,040 --> 00:02:43,180 Nel frattempo, se non cooperiamo, eseguire nuovamente il programma, dandogli 48 00:02:43,180 --> 00:02:47,550 0, ho richiamato di nuovo, o dandogli negativo 1, sono richiamato di nuovo. 49 00:02:47,550 --> 00:02:51,720 Ma se io non collaborare fornendo con, dire, 50, sto ringraziato per il 50. 50 00:02:51,720 --> 00:02:54,590