1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> Speak: Låt oss genomföra ett program som ber användaren om ett heltal 3 00:00:03,230 --> 00:00:05,850 men fortsätter att fråga dem för ett annat heltal tills 4 00:00:05,850 --> 00:00:07,590 som heltal är positivt. 5 00:00:07,590 --> 00:00:16,760 Nåväl, låt oss skriva detta, inkluderar cs50.h, inkludera standard io dot h, int 6 00:00:16,760 --> 00:00:18,010 huvud [tomrum]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Nu ska vi faktiskt börja att uppmana användare för detta heltal samtidigt in 9 00:00:23,200 --> 00:00:25,570 tänka att vi vill Fråga igen dem tills det 10 00:00:25,570 --> 00:00:26,860 numret är faktiskt positiv. 11 00:00:26,860 --> 00:00:30,160 >> Så jag vill ha någon form av looping konstruera, men en loop som exekverar på 12 00:00:30,160 --> 00:00:31,200 minst en gång. 13 00:00:31,200 --> 00:00:34,810 Och minns gör-while-slinga gör oss att göra just det. 14 00:00:34,810 --> 00:00:36,140 Låt oss koda upp detta. 15 00:00:36,140 --> 00:00:39,210 >> Låt oss först förklara en int - vi kommer kallar det n - där du vill lagra den 16 00:00:39,210 --> 00:00:41,030 användarens heltal. 17 00:00:41,030 --> 00:00:44,250 Låt oss nu göra följande. 18 00:00:44,250 --> 00:00:51,292 Printf, ge mig en positiv int. 19 00:00:51,292 --> 00:00:54,470 Låt oss nu få det int använda den CS50 bibliotekets getInt 20 00:00:54,470 --> 00:00:59,110 funktion, n blir getInt. 21 00:00:59,110 --> 00:01:02,610 Och nu är vi klara att göra något, men vi kommer att vilja göra detta 22 00:01:02,610 --> 00:01:04,580 medan n är - 23 00:01:04,580 --> 00:01:05,480 vad? - 24 00:01:05,480 --> 00:01:09,370 mindre än ett, om vi faktiskt vill ha ett positivt heltal. 25 00:01:09,370 --> 00:01:11,670 >> Låt oss gå vidare nu och skriva ut. 26 00:01:11,670 --> 00:01:17,590 Om allt är bra, tack för den positiva int, 27 00:01:17,590 --> 00:01:19,360 semikolon, spara filen. 28 00:01:19,360 --> 00:01:21,480 Låt oss nu kompilera och köra. 29 00:01:21,480 --> 00:01:25,550 >> Gör positiv prick snedstreck positiv. 30 00:01:25,550 --> 00:01:27,470 Och nu ska jag bli tillfrågad för en positiv int. 31 00:01:27,470 --> 00:01:29,630 Jag samarbetar med 1. 32 00:01:29,630 --> 00:01:31,330 Tack för den positiva int. 33 00:01:31,330 --> 00:01:33,650 >> Låt oss nu köra det här programmet och inte samarbetar. 34 00:01:33,650 --> 00:01:35,260 Kan du ge mig ett positivt int. 35 00:01:35,260 --> 00:01:37,300 Vad sägs om negativ 1? 36 00:01:37,300 --> 00:01:37,910 Intressant. 37 00:01:37,910 --> 00:01:40,460 Programmet är redan reprompted mig för en int. 38 00:01:40,460 --> 00:01:43,170 >> Låt oss vara lite mer svårt med 0. 39 00:01:43,170 --> 00:01:46,310 Fortfarande inte en positiv int, så låt oss samarbeta och den här gången 40 00:01:46,310 --> 00:01:48,280 tillhandahålla, återigen, en. 41 00:01:48,280 --> 00:01:49,990 Tack för den positiva int. 42 00:01:49,990 --> 00:01:54,300 >> Nu är det viktigt att notera att jag förklarade min variabeln n på rad 6, 43 00:01:54,300 --> 00:01:56,510 utsidan av gör-while-slinga. 44 00:01:56,510 --> 00:02:01,030 Hade jag istället förklarade n insidan av min do-while-slinga, speciellt på, säg, 45 00:02:01,030 --> 00:02:06,230 linje 10, där jag får också int från användaren, skulle det int n har endast 46 00:02:06,230 --> 00:02:09,904 fanns inom ramarna för lockigt hängslen som är närvarande på 47 00:02:09,904 --> 00:02:12,320 linje 8 och på rad 11. 48 00:02:12,320 --> 00:02:16,570 >> Med andra ord skulle n vara med omfattningen insidan av att do-while-slinga. 49 00:02:16,570 --> 00:02:20,390 Men problemet är att vi också vill använda n i linje 12 50 00:02:20,390 --> 00:02:21,900 insidan av tillståndet. 51 00:02:21,900 --> 00:02:26,120 Så även om det inte ser så vacker, det är mycket medvetet om att 52 00:02:26,120 --> 00:02:28,210 n förklaras utanför Detta gör-while-slinga. 53 00:02:28,210 --> 00:02:29,838