1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Cerchiamo di attuare un programma che richiede all'utente un numero intero 3 00:00:03,230 --> 00:00:05,850 ma continua spingendoli per un altro intero fino 4 00:00:05,850 --> 00:00:07,590 che è intero positivo. 5 00:00:07,590 --> 00:00:16,760 Bene, scriviamo questo, includere cs50.h, includere norma io punto h, int 6 00:00:16,760 --> 00:00:18,010 principale [nulla]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Ora diamo effettivamente iniziare a richiedere utente per questo intero mantenendo in 9 00:00:23,200 --> 00:00:25,570 importa che vogliamo reprompt loro fino a che 10 00:00:25,570 --> 00:00:26,860 numero è in realtà positivo. 11 00:00:26,860 --> 00:00:30,160 >> Quindi io voglio un qualche tipo di looping costruire, ma un ciclo che viene eseguito a 12 00:00:30,160 --> 00:00:31,200 almeno una volta. 13 00:00:31,200 --> 00:00:34,810 E richiamare il ciclo do-while permette noi facciamo esattamente questo. 14 00:00:34,810 --> 00:00:36,140 Facciamo codice questo. 15 00:00:36,140 --> 00:00:39,210 >> Facciamo prima dichiarare un int - faremo chiamare n - in cui memorizzare il 16 00:00:39,210 --> 00:00:41,030 integer dell'utente. 17 00:00:41,030 --> 00:00:44,250 Passiamo ora eseguire le seguenti operazioni. 18 00:00:44,250 --> 00:00:51,292 Printf, per favore mi dia un int positivo. 19 00:00:51,292 --> 00:00:54,470 Vediamo ora ottenere che int utilizzando GetInt della biblioteca CS50 20 00:00:54,470 --> 00:00:59,110 funzione, n ottiene GetInt. 21 00:00:59,110 --> 00:01:02,610 E ora abbiamo finito di fare qualcosa, ma stiamo andando a voler fare questo 22 00:01:02,610 --> 00:01:04,580 mentre n è - 23 00:01:04,580 --> 00:01:05,480 cosa? - 24 00:01:05,480 --> 00:01:09,370 meno di 1, se effettivamente vuole un intero positivo. 25 00:01:09,370 --> 00:01:11,670 >> Andiamo avanti ora e stampare. 26 00:01:11,670 --> 00:01:17,590 Se tutto va bene, grazie per l'int positivo, 27 00:01:17,590 --> 00:01:19,360 punto e virgola, salvare il file. 28 00:01:19,360 --> 00:01:21,480 Vediamo ora compilare ed eseguire. 29 00:01:21,480 --> 00:01:25,550 >> Rendere positivo dot barra positivo. 30 00:01:25,550 --> 00:01:27,470 E ora sto venga richiesto per un int positivo. 31 00:01:27,470 --> 00:01:29,630 Lasciatemi Collaboro con 1. 32 00:01:29,630 --> 00:01:31,330 Grazie per l'int positivo. 33 00:01:31,330 --> 00:01:33,650 >> Vediamo ora eseguire nuovamente questo programma e non cooperare. 34 00:01:33,650 --> 00:01:35,260 Per favore mi dia un int positivo. 35 00:01:35,260 --> 00:01:37,300 Che ne dici di negativo 1? 36 00:01:37,300 --> 00:01:37,910 Interessante. 37 00:01:37,910 --> 00:01:40,460 Il programma è già reprompted me per un int. 38 00:01:40,460 --> 00:01:43,170 >> Cerchiamo di essere un po 'più difficile con 0. 39 00:01:43,170 --> 00:01:46,310 Ancora non è un int positivo, quindi cerchiamo di cooperare e questa volta 40 00:01:46,310 --> 00:01:48,280 fornire, di nuovo, 1. 41 00:01:48,280 --> 00:01:49,990 Grazie per l'int positivo. 42 00:01:49,990 --> 00:01:54,300 >> Ora è importante notare che dichiarato la mia variabile n on line 6, 43 00:01:54,300 --> 00:01:56,510 all'esterno del ciclo do-while. 44 00:01:56,510 --> 00:02:01,030 Se avessi invece dichiarato n all'interno della mia do-while, in particolare, diciamo, 45 00:02:01,030 --> 00:02:06,230 linea 10, dove ho anche ottenere l'int da l'utente, che int n avrebbe solo 46 00:02:06,230 --> 00:02:09,904 esistito entro i confini del riccio bretelle che sono attualmente sul 47 00:02:09,904 --> 00:02:12,320 linea 8 e sulla linea 11. 48 00:02:12,320 --> 00:02:16,570 >> In altre parole, n verrebbe ambito di all'interno di tale ciclo do-while. 49 00:02:16,570 --> 00:02:20,390 Ma il problema è che anche noi desidera utilizzare n in linea 12 50 00:02:20,390 --> 00:02:21,900 all'interno della condizione. 51 00:02:21,900 --> 00:02:26,120 Quindi, anche se non sembra così piuttosto, è molto consapevole, 52 00:02:26,120 --> 00:02:28,210 n è dichiarata fuori questo ciclo do-while. 53 00:02:28,210 --> 00:02:29,838