>> Doug LLOYD: Gerai, taip pakalbėkime apie kilpas.
Taigi kilpos tipo kietas nes jie leidžia savo programą
vykdyti kodo eilutes daugiau ir daugiau ir daugiau.
Pakartotinai, nereikia kopijuoti ir įklijuokite ar kitaip juos pakartoti.
Yra trys pagrindiniai rūšių kilpų pamatysite.
Jūs tikriausiai turite progą pasinaudoti kiekvienas, kaip jūs pažangą per CS50.
Kai kurie iš šių linijų yra gana pažįstamas nuo nulio,
Taigi dar kartą, kaip mes padarėme su sąlyginių, mes įdėti juos vieną šalia kito
jei yra analogija mes galime padaryti.
>> Pirma amžinai nuo nulio, kuris lygina su while (true).
Tai yra tai, ką mes vadiname begalinis ciklas.
Kodinių linijos tarp garbanotieji petnešos, panašiai kaip įspūdį
kad viduje C tinka iš amžinai blokuoti,
atliks ne kartą iš viršaus į apačią, vėl ir vėl ir vėl,
amžinai.
Galų gale, jei jūs prisimenate DUK diskusija Būlio išraiškos,
tiesa visada yra tiesa.
Taigi, jei mes darome kažkas taip ilgai, kaip tiesa
yra true-- Atrodo šiek tiek silly-- tiesa yra visada teisinga, todėl visada galėsite paleisti.
Tai bus paleisti amžinai ir amžių amžius, kol mes
rasti būdą išeiti iš jos su pertrauka teiginys, kuris vėl,
mes matėme šiek tiek, o prieš mums buvo kalbama apie jungikliu.
>> Arba kitaip tiesiog žudo mūsų programa, kuri, beje,
jei jūs kada nors rasti sau situacija su begalinis ciklas
ir jūs nežinote, kaip sustabdyti jūsų programa paleisti.
Tiesiog paspauskite kontrolę ir C kad bus nužudyti savo programą Jums.
Tačiau tai, vėlgi, yra vadinamas begalinis ciklas.
Tai yra kilpa, kad bus paleisti visam laikui.
Dabar, o kilpos nėra visada begalinis, nes taip
mes galime pakeisti Būlio išraiška kažką
šiek tiek daugiau naudingos ne tik tiesa.
Taigi čia dar vienas pavyzdys.
Nors ir kai Būlio išraiška ir tada garbanotas petnešos.
Tai gana daug analogiškas pakartoti, kol nuo nulio.
Nors per sekundę, aš paaiškinti skirtumą.
>> Taigi C, jei Būlio išraiškos viduje, o kilpa
įvertina, kad tiesa, linijas kodas tarp klamrami
atliks ne kartą daugiau ir daugiau ir vėl, kol Būlio išraiškos
įvertina false.
Taigi, pavyzdžiui, jums gali turėti tam tikrą kovos rūšiuoti.
Taigi sakau jums ne iš pradžių Šis ciklas sako int x lygus nuliui.
Nors x yra mažesnis nei 100, tai pora viskas viduje, kad garbanotas petnešos,
tada jūsų kilpa pabaigoje, jūs sakote x plius plius, jūs incrementing x.
Galų gale x gausite 100 ir jūs
sustoti, nes su sąlyga, x yra mažiau nei 100
nebebus tiesa, kaip greičiau kaip x yra lygus 100.
100 yra ne mažesnis kaip 100.
>> Dabar šiek tiek klaidinančiai, elgesys iš įbrėžimams blokas yra atstatomas.
Taigi būkite atsargūs, jei tikrai tai yra Jūsų pirmasis įsiveržimas į naudojant kilpas.
Iš esmės, pakartokite iki bloko Scratch
bus pakartoti kažką daugiau ir daugiau ir daugiau,
iki išraiškos, Būlio išraiška šešiakampis yra tiesa.
Taigi ji bus nuolat daro tai kol jis yra tiesa.
Tuo tarpu while cikle bus toliau daryti, kol ji yra klaidinga.
Taigi jie gana panašūs, tačiau ten, kad mažai skirtumo tik
būti atsargūs, ypač kaip jūs darote Jūsų pirmasis įsiveržimas iš pereinate
subraižyti į C.
Kitas rūšies kilpos yra tikrai gana panašūs.
Tai vadinama, o kilpa daryti.
Šis ciklas atliks visas linijas kodo tarp garbanotas petnešos vieną kartą,
ir tada ji bus patikrinti Būlio išraiška.
Jei Būlio išraiškos įvertina tiesa,
jis bus grįžti ir pakartoti kad procesas daugiau ir daugiau
ir daugiau, kol Būlio išraiška įvertina false.
Taigi, tai kilpa, skirtingai nei while cikle, yra garantuoja, kad paleisti bent vieną kartą.
Tai gali būti gana naudinga.
>> Galiausiai, mes turime už kilpa.
Dėl kilpos rūšies sintaksiškai nepatraukli
ir ten daug vyksta čia, todėl būti su manimi
kaip mes stengiamės ir pertrauka šių vienetų atskirai.
Apskritai, naudojimo atveju iš už kilpa yra jums
noriu pakartoti kažką tikrą skaičių kartų.
Šiame pavyzdyje čia Turiu pakartoti blokas
nuo nulio, o tai analogiškas už kilpos
C, kartojant kažką 10 kartų.
Ir už kilpa Kairėje pusėje, kuris
yra keturių kilpa, kad būtų daryti tą patį.
Tai būtų 10 kartų.
Skaičiuojant nuo nulio, mes prieaugio kiekvieną kilpą perdavimo.
Ir mes nuolat daryti tol, kol i yra mažesnis nei 10.
>> Taigi, kas atsitiks?
Yra visa partija kodas ten.
Leiskite ją padalyti į kas vyksta žingsnis
po žingsnio, kaip mes kasti per for ciklas.
Pirmas dalykas, kad nutiko skaitiklis kintamasis yra centras.
Viskas su ta pirmoji kairėje kabliataškis viduje skliausteliuose
yra įvykdytas.
Šiuo atveju, mes sakydamas int i lygus 0.
Skelbiu naują kintamąjį vadinamą "I, kad kintamųjų yra tipo sveikas
ir mes sakydamas vertę viduje kad kintamasis bus nulis.
>> Antras dalykas, mes darome, yra mes tada iš karto įvertinti
Būlio išraiška.
Bulio logikos išraiška yra į viduryje dviejų kabliataškiais.
I yra mažesnis nei 10.
Tai tiesa čia, tiesa?
Mes tik pasakė i yra lygus nulis, ir taip 0 yra mažiau nei 10,
ir taip, kad sąlyga Tiesa ir mes dabar
pereiti prie vykdyti, kilpą kūną.
Jei tai buvo klaidinga.
Jei, pavyzdžiui, pasakiau vietoj Aš lygus 0 ten sakė, kad aš lygus 15,
int i lygus 15.
Na 15 yra ne mažesnis nei 10, todėl niekada įveskite kilpa kūną
nes Būlio išraiškos ten būtų įvertinti, kad būtų klaidinga.
>> Kai mes eiti per iš viršaus į apačią, mes susiduriame, kad uždarant garbanotas petnešomis,
trečioji dalykas atsitinka.
Skaitiklis kintamasis yra padidinama, arba, tiksliau, linijos
kodo pareiškimo po Antrasis kabliataškis viduje
už kilpos skliausteliuose yra įvykdytas.
Taigi, mes pradėti iki sakydamas int i lygus 0.
Tada mes patikrinti, ar nėra Būlio išraiška yra teisinga.
0 yra mažesnis negu 10 taip tai tiesa.
Taigi mes ketiname tęsti į kūną kilpą.
Daiktai įvyks viduje linijos, ir kai susiduriame su, kad uždarant garbanotas
petnešomis, kitas dalykas, mes padaryti, tai sakome i pliusas, pliusas.
Buvau nulis dabar aš vienas.
Tada mes vėl patikrinti vertę Būlio išraiška viduryje.
Vienas iš jų yra mažesnis nei 10.
Taigi mes pereiti per tai apdoroti vėl ir vėl.
Mes gausite uždarymo garbanotas petnešomis dar kartą.
Mes prieaugio i iš 1-2 ir nuo 2 iki 3.
Ir taip toliau ir taip toliau ir taip toliau, kol Galų gale aš vertė tampa 10.
Ar 10 mažiau nei 10?
Ne.
Skaičiuojant nuo 0, mes dingo per 10 iteracijų kilpa.
Mes pakartoti 10 kartų, tiesiog kaip mes padarėme Scratch blokas.
Ir taip, kad tai iš esmės procesas už keturių kilpa.
>> Dabar neatimtų tikrasis kodas ir išleisti jį
vos keletas pagrindinių bendrųjų ataskaitų.
Štai kas atsitinka.
Visi ataskaitose pradėti vykdomi pirmiausia.
Jūs galite turėti daugiau nei vieną.
Tada Bulio logikos išraiška yra tikrinamas.
Jei išraiška įvertina tiesa, vykdyti kūno kontūro vieną kartą.
Jei išraiška įvertina false, mes padaryta.
Mes neturime vykdyti kūno kilpos išvis.
Po mes įvykdytas kūno linijos vieną kartą,
tada mes darome tai, kas yra prieaugis dalis ten.
Kuris paprastai bus kažkas panašaus i plius, plius
ar kažkas panašaus, kad keičia priešinį kintamąjį.
Po to, kai mes prieaugio, mes vėl patikrinti išraiška
ir pakartokite tuos veiksmus daugiau ir daugiau ir vėl, kol sąvoka yra
nebėra tiesa.
>> Taigi, kas yra naudojimo atvejai kilpa?
Naudokite jūs naudojate Nors kilpa norite kilpa pakartoti
nežinomą skaičių kartų, tačiau jis galbūt gali ne paleisti visi.
Tikrai bendra pavyzdys kurio laiko kilpų naudojamas
yra paleisti kontrolės srautą žaidimą.
Jūs negalite žinoti, kiek laiko vartotojas bus žaisti,
tačiau norite išlaikyti daro tą patį.
Atnaujinant pozicijas Įvairios animacinius ant lentos.
Jūs norite, kad viskas būtų juda visą laiką,
bet jūs neturite žinoti, kada vartotojas ketina nustoti žaisti
arba kai jie ketina paleisti iš gyvenimo.
Taigi, o kilpa yra tikrai geras kažko panašaus.
Tai gera naudojimo atveju.
>> Dėl daryti, o kilpa, tai gana panašios.
Jūs norite, kad kilpa pakartoti nežinomas skaičių kartų, bet ne mažiau kaip vieną kartą.
Jūs galite naudoti šį žaidimą per daug, bet tikrai dažnai naudojamas
yra paskatino įvesties vartotoją.
Apskritai, galima sakyti kažką patinka, duok man teigiamas sveikasis skaičius,
ir jūs galite įdėti, kad viduje, o kilpa darbų.
Taigi ji visada bus užduoti juos bent vieną kartą teigiamą sveikąjį skaičių.
Jei jie jums teigiamas sveikasis skaičius, jums gali išeiti iš kilpos.
Jums gali būti padaryta.
Būlio išraiška do, o gali būti klaidinga.
>> Ir jūs neklauskite juos vėl.
Jei jie jums neigiamą numerį, kuriuo jie tipo kai žodis ar kažką, kad
tikrai ne naudinga tu, gali naudoti
do while cikle grįžti ir padaryti jis vėl ir vėl ir vėl.
Jūs tikrai norite paklausti jiems suteikti jums numerį, kai,
bet jūs neturite žinoti, kaip daug kartų po to jie gali būti kenkėjai.
Ir taip daryti, o tai labai naudinga Bylą numatoma nagrinėti paskatino įvesties vartotoją.
Ir už kilpomis naudoti atveju paprastai yra tada, kai
norite pakartoti kilpa diskretiška skaičių kartų,
nors galbūt ne žinoti kartų skaičių
momentas programa yra parengta.
>> Taigi, pavyzdžiui, gal turite programą kur greitai už skaičių vartotoją.
Ir jie patenka 100.
Ir tada jūsų for ciklas bus tuo atveju paleisti 100 kartų.
O gal jie patenka 1000 jūsų programos
ir tada paleisti į kilpą 1000 kartus.
Tai specifinis skaičių kartų.
Jie nebūtinai žinau, ką tai skaičių
yra momentas, programa yra surinkti.
Tai nepatinka, o kilpa kur ji galėtų būti begalinis.
Tai gana skaičių kad jūs tiesiog nežinau.
Dabar, nors aš apibūdintos visos šios naudojimo atvejai,
jūs turėtumėte žinoti, kad gana daug kas aplinkybė,
galite kaitalioti visus trys iš šių linijų.
Galite naudoti už kilpos, kur jūs priešingu atveju naudoti while cikle.
Galite naudoti for ciklas tose vietovėse, kur norite naudoti, o kilpos ir pan daryti.
Jis gali būti šiek tiek sudėtinga kartais, taip paprastai tai yra gera praktika
laikytis tipiškas naudojimo atveju.
Naudokite daryti, o kilpa, jei jums norėjau kažką vieną kartą, bent jau.
Naudokite for ciklas, jei jūs norite daryti kažkas konkretus skaičių kartų.
Galų gale, tai kodėl yra trijų skirtingų rūšių kilpos.
>> Taigi, jie gali būti naudojami teisinga kontekste.
Bet jūs galite sukeiskite jiems, jei norite.
Jei jums jaustis patogiai su tuo pačiu kilpų ir jūs visada norite naudoti, o kilpų.
Tai yra kažkas, kad jūs galite padaryti, nors ji
gali būti šiek tiek sintaksiškai sudėtinga, kai už kilpa
būtų daug paprastesnis.
>> Mano vardas yra Doug Lloyd ir tai yra CS50.