1 00:00:07,370 --> 00:00:09,760 [Powered by Google Translate] TOMMY MACWILLIAM: pričajmo o petlje, jedna od zajedničkog 2 00:00:09,760 --> 00:00:13,380 programiranje konstruira ćemo vidjeti tijekom CS50. 3 00:00:13,380 --> 00:00:15,570 Mi ćemo koristiti petlje kada želimo obaviti 4 00:00:15,570 --> 00:00:17,200 Zadatak više od jednom. 5 00:00:17,200 --> 00:00:20,700 Na primjer, možemo ispisati "Bok" 100 puta ili ispis 6 00:00:20,700 --> 00:00:22,700 od svih slova abecede. 7 00:00:22,700 --> 00:00:26,030 U oba slučaja, imamo jednu stvar koju želite učiniti 8 00:00:26,030 --> 00:00:28,700 više puta, ispisati nešto. 9 00:00:28,700 --> 00:00:31,970 Međutim, ono što mi isprintati svaki put može varirati. 10 00:00:31,970 --> 00:00:34,530 Tako možemo napraviti nešto malo drugačije na svakoj 11 00:00:34,530 --> 00:00:37,820 iteracija, ili pokrenuti kroz, od petlje. 12 00:00:37,820 --> 00:00:41,280 Vidjet ćemo tri različite vrste petlje u C, dok 13 00:00:41,280 --> 00:00:44,700 petlje, za petlje, i učiniti dok petlje. 14 00:00:44,700 --> 00:00:47,850 Iako ove tri vrste petlji imaju drugačiju sintaksu, 15 00:00:47,850 --> 00:00:50,630 ideje iza njih su isti. 16 00:00:50,630 --> 00:00:53,930 Mi ćemo definirati neke blok koda unutar vitičastih zagrada, 17 00:00:53,930 --> 00:00:57,810 zove se tijelo petlje, da želimo biti pogubljen 18 00:00:57,810 --> 00:00:59,790 neki broj puta. 19 00:00:59,790 --> 00:01:03,370 Promjenom vrijednosti varijabli korištenih u tijelu, mi 20 00:01:03,370 --> 00:01:07,570 Možete napraviti naš petlje napraviti nešto drugačije svaki put to pokrenuti. 21 00:01:07,570 --> 00:01:10,750 S bilo petlje smo pisali, također ćemo morati odlučiti kada 22 00:01:10,750 --> 00:01:12,400 petlja će se prestati prikazivati. 23 00:01:12,400 --> 00:01:15,650 Ako to ne učinite, onda naše računalo pouzdan će se nastaviti 24 00:01:15,650 --> 00:01:19,040 pokrenuti tu petlju dok mi ubiti program. 25 00:01:19,040 --> 00:01:22,490 U Scratch, možemo koristiti ponoviti n puta 26 00:01:22,490 --> 00:01:24,600 blokirati stvoriti petlju. 27 00:01:24,600 --> 00:01:28,200 Sve komada unutar bloka koji je rekao ponavljanje 10 28 00:01:28,200 --> 00:01:30,130 će se izvoditi 10 puta. 29 00:01:30,130 --> 00:01:34,160 I onda, mi bismo prešli na komade nakon tog kruga. 30 00:01:34,160 --> 00:01:38,140 Tako je naša stop uvjet je, jednostavno, to je bio blok 31 00:01:38,140 --> 00:01:39,830 pokrenuti 10 puta. 32 00:01:39,830 --> 00:01:43,900 Tako ćemo ponovno ovu u C. Da bi Scratch kako bi se osiguralo 33 00:01:43,900 --> 00:01:46,920 da su komadi unutar ponavljanja bloka izvršena 34 00:01:46,920 --> 00:01:51,180 točno 10 puta, Scratch treba pratiti svaki 35 00:01:51,180 --> 00:01:53,750 Izvršenje ponavljanja bloka. 36 00:01:53,750 --> 00:01:56,790 Da pratiti koliko puta naša petlja tijelo je 37 00:01:56,790 --> 00:02:00,360 pogubljen, ajmo stvoriti varijablu nazvanu ja. 38 00:02:00,360 --> 00:02:03,400 Mi ćemo ja krenuti od nule, jer naše petlje 39 00:02:03,400 --> 00:02:04,650 nije pokrenuto. 40 00:02:10,009 --> 00:02:10,949 OK 41 00:02:10,949 --> 00:02:15,560 Sada ćemo koristiti ključnu riječ dok krenuti naš petlju. 42 00:02:20,100 --> 00:02:24,180 Sada ćemo morati shvatiti kada naša petlja će prestati, ali 43 00:02:24,180 --> 00:02:26,730 ostavimo to za sada, a zatim se vratiti na njega. 44 00:02:30,970 --> 00:02:32,150 U redu. 45 00:02:32,150 --> 00:02:35,260 Unutar našeg petlje, neka je samo ispisati poruku van, kao 46 00:02:35,260 --> 00:02:38,535 "Hi". Možemo koristiti printf funkciju za to. 47 00:02:48,400 --> 00:02:49,230 U redu. 48 00:02:49,230 --> 00:02:54,210 Dakle, sada ćemo snimati da iteracija petlje tijelo ima 49 00:02:54,210 --> 00:02:55,750 izvršena. 50 00:02:55,750 --> 00:03:00,320 Mi možemo učiniti da dodavanjem 1, ili povećavanjem, naš brojač 51 00:03:00,320 --> 00:03:01,740 varijabla, ja. 52 00:03:01,740 --> 00:03:09,180 Da bi to učinili, možemo reći ja je jednak i plus jedan ili više 53 00:03:09,180 --> 00:03:16,520 jednostavno, i plus plus. 54 00:03:16,520 --> 00:03:17,320 Izvrsno. 55 00:03:17,320 --> 00:03:21,810 Tako sada možemo vidjeti da svaki put naša petlja se pokrenuti, naš 56 00:03:21,810 --> 00:03:24,500 brojač varijabla ide gore po jedan. 57 00:03:24,500 --> 00:03:29,410 Dakle, mi znamo točno koliko iteracija smo pokrenuti tako daleko. 58 00:03:29,410 --> 00:03:31,630 Nakon jedne iteracija petlje, naša vrijednost 59 00:03:31,630 --> 00:03:34,270 I će biti 1. 60 00:03:34,270 --> 00:03:37,460 Nakon dva ponavljanja, ja ću biti dva. 61 00:03:37,460 --> 00:03:42,640 I nakon 10 iteracija, ja ću biti 10. 62 00:03:42,640 --> 00:03:46,780 Dakle, ako želimo pokrenuti ovu petlju točno 10 puta, a zatim 63 00:03:46,780 --> 00:03:49,240 to je kad želimo zaustaviti. 64 00:03:49,240 --> 00:03:53,860 Na taj način želimo pokrenuti ovu petlju dok sam je manje od 10, a 65 00:03:53,860 --> 00:03:57,630 to je upravo ono što ćemo pisati, a ja 66 00:03:57,630 --> 00:04:02,450 je manje od 10. 67 00:04:02,450 --> 00:04:06,380 Ovaj uvjet izgleda baš kao uvjeta koje smo koristili u ako 68 00:04:06,380 --> 00:04:07,830 drugdje blokovi. 69 00:04:07,830 --> 00:04:11,690 Nakon što je tijelo našeg petlje je izvršen, naš program 70 00:04:11,690 --> 00:04:14,690 će skočiti natrag do petlje uvjet. 71 00:04:14,690 --> 00:04:17,290 Ako je uvjet istinit, onda tijelo 72 00:04:17,290 --> 00:04:18,990 petlja će se ponovno pokrenuti. 73 00:04:18,990 --> 00:04:22,190 Ako je uvjet više ne vrijedi, onda je naša petlja neće biti 74 00:04:22,190 --> 00:04:25,700 pokrenuti više, te će se premjestiti na sljedeći redak koda 75 00:04:25,700 --> 00:04:27,876 ispod naše petlje. 76 00:04:27,876 --> 00:04:28,550 U redu. 77 00:04:28,550 --> 00:04:30,740 Tako ćemo pogledati drugoj vrsti 78 00:04:30,740 --> 00:04:33,000 petlja, for petlja. 79 00:04:33,000 --> 00:04:37,310 Pored dok ključnu riječ, u zagradama, imali smo jednu stvar, 80 00:04:37,310 --> 00:04:39,840 uvjet da je potrebno da bude istinito za 81 00:04:39,840 --> 00:04:42,010 petlja tijelo treba pokrenuti. 82 00:04:42,010 --> 00:04:45,440 To znači da smo morali stvoriti svoj protuprijedlog varijablu izvan 83 00:04:45,440 --> 00:04:48,760 od petlje i ne zaboravite da ga povećavati u nekom trenutku 84 00:04:48,760 --> 00:04:51,050 unutar petlje. 85 00:04:51,050 --> 00:04:54,320 Zaglavlje za naš for petlje, s druge strane, ima tri 86 00:04:54,320 --> 00:04:58,510 dijelova, od kojih će svaki biti odvojena zarezom. 87 00:04:58,510 --> 00:05:01,950 U našoj prvoj trećini, možemo proglasiti bilo brojač ili pomagača 88 00:05:01,950 --> 00:05:05,000 varijable smo željeli iskoristiti u našoj petlje. 89 00:05:05,000 --> 00:05:07,350 U praksi, to može biti jako korisno. 90 00:05:07,350 --> 00:05:10,590 Mi stvarno ne morate tu varijablu, ja, nakon našeg vremena 91 00:05:10,590 --> 00:05:13,650 petlja je pokrenuti, tako da stvarno ne bi trebali imati ga proglasiti 92 00:05:13,650 --> 00:05:15,810 izvan petlje. 93 00:05:15,810 --> 00:05:19,080 Drugi treći će biti uvjet da mora biti istina 94 00:05:19,080 --> 00:05:21,850 za tijelo treba izvršiti ponovno, baš kao i 95 00:05:21,850 --> 00:05:23,330 u našoj while petlje. 96 00:05:23,330 --> 00:05:26,350 U našoj posljednjoj trećini, možemo pokrenuti izjavu da će biti 97 00:05:26,350 --> 00:05:30,270 obavlja nakon svake iteracije petlje, tako da ne morate 98 00:05:30,270 --> 00:05:32,710 ga graditi u petlji tijelu. 99 00:05:32,710 --> 00:05:38,390 Tako ćemo pisati za petlje da odbrojava 5-1. 100 00:05:38,390 --> 00:05:41,790 Počet ćemo s ključnih riječi. 101 00:05:41,790 --> 00:05:44,680 Možemo stvoriti brojač varijablu prvi, koji ćemo 102 00:05:44,680 --> 00:05:47,840 postavljen na 5 ovaj put otkako smo odbrojavanje, 103 00:05:47,840 --> 00:05:50,110 slijedi zarezom. 104 00:05:50,110 --> 00:05:53,660 Sljedeća je naš uvjet, koji ćemo se vratiti. 105 00:05:53,660 --> 00:05:57,540 Treće, željeli bismo dekrementirati naš brojač varijablu nakon 106 00:05:57,540 --> 00:05:59,620 svaka iteracija petlje. 107 00:05:59,620 --> 00:06:04,740 Dakle, umjesto da govori ja Plus Plus, mi ćemo reći da sam minus minus. 108 00:06:04,740 --> 00:06:05,300 U redu. 109 00:06:05,300 --> 00:06:09,490 Dakle, želimo se petlja tijelo pokrenuti dok ja još uvijek 110 00:06:09,490 --> 00:06:11,960 veći od 0. 111 00:06:11,960 --> 00:06:16,160 U tijelu petlje, ajmo ispisati vrijednost i.. 112 00:06:16,160 --> 00:06:20,480 Da biste to učinili, mi ćemo koristiti printf funkciju, koristeći% d 113 00:06:20,480 --> 00:06:21,650 rezervirano. 114 00:06:21,650 --> 00:06:24,820 Podsjetimo, da je rezervirano će biti zamijenjen sa 115 00:06:24,820 --> 00:06:27,040 vrijednost i. 116 00:06:27,040 --> 00:06:32,060 Konačno, dodajmo izjavu nakon našeg za petlju. 117 00:06:32,060 --> 00:06:35,850 Kada smo pokrenuli ovu petlju, ja ću krenuti na pet, 118 00:06:35,850 --> 00:06:38,070 pa 5 će se tiskati. 119 00:06:38,070 --> 00:06:42,000 Jednom sam dobiva 0, nastavak stanje, ja je 120 00:06:42,000 --> 00:06:44,450 veći od 0, neće održati. 121 00:06:44,450 --> 00:06:47,330 Tako je naša petlja će se zaustaviti izvršenje, a mi ćemo vidjeti 122 00:06:47,330 --> 00:06:49,850 Izjava nakon petlje. 123 00:06:49,850 --> 00:06:51,340 Tako ćemo pokrenuti ovaj kod. 124 00:06:51,340 --> 00:06:52,700 Prvo, mi ćemo sastaviti 125 00:06:52,700 --> 00:06:56,460 countdown.c s make odbrojavanje. 126 00:06:56,460 --> 00:06:59,320 Sada, možemo pokrenuti ovaj kod s. / Odbrojavanja. 127 00:07:02,340 --> 00:07:06,040 U oba dok petlje i petlje, naš nastavak 128 00:07:06,040 --> 00:07:09,010 stanje će biti provjereni prije tijela 129 00:07:09,010 --> 00:07:10,960 od petlja se izvršava. 130 00:07:10,960 --> 00:07:13,840 To znači da, ako je naš uvjet nije inicijalno 131 00:07:13,840 --> 00:07:18,100 istina, onda je tijelo našeg petlje nikada neće biti pokrenuti. 132 00:07:18,100 --> 00:07:22,060 Dakle, to je ponekad korisno provjeriti stanje nakon 133 00:07:22,060 --> 00:07:25,150 Tijelo petlje nego prije njega. 134 00:07:25,150 --> 00:07:28,270 Tako ćemo napisati petlju za brz korisnik za broj 135 00:07:28,270 --> 00:07:30,990 dok pozitivan broj dobivate. 136 00:07:30,990 --> 00:07:34,740 Ako korisnik ulazi negativni broj, mi ćemo ih želite pitati 137 00:07:34,740 --> 00:07:36,260 za drugi broj. 138 00:07:36,260 --> 00:07:38,940 Tako ćemo htjeti ovaj redak se unutar 139 00:07:38,940 --> 00:07:41,050 tijelo izvan petlje. 140 00:07:41,050 --> 00:07:44,730 Međutim, kada se petlja kandidirati za prvi put, korisničko 141 00:07:44,730 --> 00:07:46,750 nije dao nam broj gostiju. 142 00:07:46,750 --> 00:07:49,640 Tako da nema smisla da provjerite je li to pozitivno. 143 00:07:49,640 --> 00:07:54,020 Umjesto toga, da ćete želite provjeriti broj nakon tijelu 144 00:07:54,020 --> 00:07:55,720 petlja se pokrenuti. 145 00:07:55,720 --> 00:08:00,310 Možemo to učiniti s učiniti dok petlje. 146 00:08:00,310 --> 00:08:03,560 Prvo, mi ćemo stvoriti varijablu, n, koji će se održati 147 00:08:03,560 --> 00:08:05,230 korisnikov ulaz. 148 00:08:05,230 --> 00:08:09,960 Sada ćemo koristiti učiniti ključnu riječ, a nakon vitičastih zagrada koje 149 00:08:09,960 --> 00:08:12,930 će krenuti u tijelo našeg petlje. 150 00:08:12,930 --> 00:08:16,230 U tijelu, možemo tražiti od korisnika za broj s 151 00:08:16,230 --> 00:08:18,480 GetInt funkciju. 152 00:08:18,480 --> 00:08:23,230 Sada ćemo željeti tijelo ove petlje izvršiti opet, ako 153 00:08:23,230 --> 00:08:28,370 korisnik upisali negativan niz, pa ćemo reći dok n 154 00:08:28,370 --> 00:08:30,420 je manja od 0. 155 00:08:30,420 --> 00:08:33,140 Obavijest zarez ovdje nakon while. 156 00:08:38,909 --> 00:08:40,679 Tako ćemo pokrenuti ovaj kod. 157 00:08:40,679 --> 00:08:44,780 Prvo, mi ćemo sastaviti ovo s napraviti pozitivne. 158 00:08:44,780 --> 00:08:49,340 Sada možemo pokrenuti program sa. / Pozitivna. 159 00:08:49,340 --> 00:08:52,660 Ako mi daju Ovaj program negativan broj, kao negativna 160 00:08:52,660 --> 00:08:56,560 4, onda ćemo biti upitani za broj budući da je 161 00:08:56,560 --> 00:09:00,490 stanje našeg učiniti while petlja je bila istina. 162 00:09:00,490 --> 00:09:04,690 Nakon što smo dati pozitivan broj, kao i 8, a zatim 163 00:09:04,690 --> 00:09:08,560 stanje našeg učiniti dok petlja više neće biti istina. 164 00:09:08,560 --> 00:09:12,080 Dakle, petlja se neće izvršiti ponovno. 165 00:09:12,080 --> 00:09:15,290 I to je to za tri vrste petlji ćemo koristiti u C. 166 00:09:15,290 --> 00:09:18,840 Moje ime je Tommy, a ovo je CS50.