>> DOUG LLOYD: Bine, așa hai sa vorbim despre bucle.
Deci, buclele sunt un fel de misto deoarece acestea permit programul
să execute linii de cod peste si peste si peste.
În mod repetat, fără a fi nevoie să copieze și lipiți sau altfel le repeta.
Există trei mari tipuri de bucle vei vedea.
Veți avea, probabil ocazia de a utiliza fiecare măsură ce progresezi prin CS50.
Unele dintre aceste bucle sunt destul de familiar pentru tine de la zero,
astfel, din nou, așa cum am făcut cu condiționale, le vom pune una lângă alta
în cazul în care există o analogie, putem trage.
>> În primul rând este pentru totdeauna de la zero, care compară cu timp (true).
Aceasta este ceea ce noi numim o buclă infinită.
Liniile de cod între cret bretele, la fel ca piesele puzzle-ului
că se potrivesc în interiorul C ale blocului pentru totdeauna,
va executa în mod repetat, de sus în jos, peste si peste si peste,
pentru totdeauna.
La urma urmei, dacă vă amintiți nostru discuție de expresii booleene,
adevărat este întotdeauna adevărat.
Deci, dacă facem ceva atât timp cât adevărata
este se pare un pic true-- silly-- adevărat este întotdeauna adevărat, așa că va rula întotdeauna.
Va alerga pentru totdeauna și totdeauna până când vom
găsi o cale de a ieși din ea cu o declarație pauză, care din nou,
am văzut în urmă cu puțin timp ne-am s-au vorbit despre comutator.
>> Sau altfel ucide doar nostru Programul, care, întâmplător,
dacă ați găsit vreodată într-un Situația cu o buclă infinită
și nu știi cum să se oprească programul de funcționare.
Doar lovit de control și C și care va ucide programul pentru tine.
Dar aceasta, din nou, este numit o buclă infinită.
Este o buclă care va rula pentru totdeauna.
Acum, în timp ce buclele nu sunt întotdeauna infinit, pentru că, de asemenea,
putem înlocui Boolean expresie cu ceva
un pic mai util decât adevărat.
Deci, aici este un alt exemplu.
În timp ce unele și Boolean exprimare și bretele apoi buclat.
Asta e destul de mult analog să repete până când, de la zero.
Deși într-o secundă, voi explica diferența.
>> Deci în C, în cazul în care expresia booleană interiorul buclei în timp ce
se evaluează la adevărat, liniile de Codul între acolade
va executa în mod repetat de peste si peste și peste până expresie booleană
evaluează la fals.
Deci, de exemplu, s-ar putea au un fel de contra.
Deci spui la începutul această buclă spune int x este egal cu zero.
În timp ce x este mai mic de 100, face un cuplu lucrurile în interiorul că acolade,
apoi în cele din urmă de bucla dumneavoastră, spuneți x plus plus, te incrementare x.
În cele din urmă X va primi la 100 și veți
opri pentru că starea x este mai mic de 100
nu va mai fi valabil ca Imediat ce x este egal cu 100.
100 este cel puțin 100.
>> Acum oarecum confuz, comportamentul blocului zero este inversată.
Astfel încât să fie foarte atent în cazul în care acest lucru este prima incursiune în ajutorul bucle.
Practic, repeta până bloc în Scratch
se va repeta ceva peste si peste si peste,
până expresia, Boolean exprimare în hexagon este adevărat.
Deci, acesta va continua să faci ea până când este adevărat.
Între timp, în timp ce bucla va continua să o facă până când acesta este fals.
Astfel încât acestea sunt destul de similare, dar nu e pic de distincție doar
să fie atent de mai ales ca faci prima incursiune de la trecerea
la zero în c.
Următorul tip de buclă este de fapt destul de similare.
Se numește în timp ce bucla do.
Această buclă va executa toate liniile de cod între acolade dată,
și apoi se va verifica expresia booleană.
Dacă expresia booleană evaluează la true,
că va merge înapoi și se repetă acest proces de peste si peste
și peste până la Boolean expresie se evaluează la fals.
Deci această buclă, spre deosebire de o buclă în timp ce, este garantat pentru a rula cel puțin o dată.
Acest lucru poate fi destul de util.
>> În cele din urmă, avem o buclă pentru.
Pentru bucle sunt un fel de sintactic neatractive
și există o mulțime întâmplă pe aici, astfel încât să poarte cu mine
așa cum am încerca și rupe aceste piese în afară.
În general, în cazul utilizării de o buclă pentru tine este
doriți să repetați ceva o anumit număr de ori.
În acest exemplu aici, Am blocul repeta
de la zero, care este Analog pentru bucla
în C, repetând ceva de 10 ori.
Iar pentru bucla pe stânga acolo, care
de patru buclă care ar face acelasi lucru.
Aceasta ar merge de 10 ori.
Numărarea de la zero, am incrementa fiecare trecere a buclei.
Și noi continuăm să facem asta până i este mai mică de 10.
>> Deci, ce se întâmplă?
Există o mulțime de cod acolo.
Să-l rupe în jos pentru a ceea ce se întâmplă pas
cu pas cum săpăm prin buclă pentru.
Primul lucru care sa întâmplat este variabila contor este centrul.
Totul la stânga care primul punct și virgulă în interiorul paranteze
este executat.
În acest caz, noi suntem spune int i este egal cu 0.
Declararea o nouă variabilă numită I, că variabile este un întreg de tip
și ne spun valoarea în interiorul că variabila va fi zero.
>> Al doilea lucru ce facem este apoi vom evalua imediat
expresia booleană.
Expresie booleană este în configurație de mijloc a două punct și virgulă.
I este mai mică de 10.
E adevărat, nu?
Tocmai am spus eu este egal cu zero, iar așa 0 este mai mic de 10,
și astfel încât condiție este adevărat și vom acum
proceda la executarea corpul buclei.
Dacă ar fi fost fals.
Dacă, de exemplu, i-am spus în loc de Am egal cu 0 nu am spus că este egal cu 15,
int i egal 15.
Ei bine 15 este de cel puțin 10, așa că nu s-ar intra în corpul buclei
deoarece expresia booleană ar evalua a fi false.
>> După ce am trece prin de sus în jos, întâlnim că închiderea bretele creț,
un al treilea lucru se întâmplă.
Contra variabila este incrementat, sau mai degrabă, linii
de cod de la o declarație după al doilea punct și virgulă în interiorul
pentru bucle paranteze este executată.
Deci, vom începe prin spune int i este egal cu 0.
Apoi vom verifica dacă este sau nu expresia booleană este adevărat.
0 este mai mic, de 10 asa ca e adevarat.
Deci vom continua să în corpul buclei.
Lucrurile vor întâmpla în interiorul buclei, și atunci când ne întâlnim că creț închidere
bretele, următorul lucru pe care îl faci este să spunem i, plus, plus.
Am fost zero, acum i este unul.
Apoi, vom verifica din nou valoarea expresia booleană în mijloc.
Una dintre ele este mai mică de 10.
Deci, vom trece prin acest procesa nou și din nou.
Vom ajunge la închiderea bretele buclat din nou.
Vom I incrementa de la Un la 2 și de la doi pentru a 3.
Și așa mai departe și așa mai departe și așa mai departe, până la în cele din urmă valoarea I devine 10.
Este mai puțin de 10 10?
Nu.
Numărarea de la 0, am plecat prin 10 iterații de buclă.
Am repetat de 10 de ori, doar așa cum am făcut în blocul Scratch.
Și așa că e practic procedeu de patru buclă.
>> Acum ținând departe codul actual si inscrie
în doar câteva afirmații generale de bază.
Iată ce se întâmplă.
Toate declarațiile din începe sunt executate în primul rând.
S-ar putea avea mai mult de un.
Apoi, expresia booleană este verificat.
În cazul în care expresia este evaluată la true, executa corpul bucla o dată.
Dacă expresia evaluează la fals, am terminat.
Noi nu executa corpul buclei, la toate.
După ce am executat corp bucla un moment dat,
atunci ce facem ceea ce este în partea increment acolo.
Care este, de obicei va fi ceva de genul am plus, plus
sau ceva de genul asta, care modifică o variabilă contor.
Apoi, după ce am incrementa, am verificați din nou expresia
și repetați aceste etape de peste si peste și peste până când expresia este
nu mai este valabil.
>> Deci, ce sunt cazurile de utilizare pentru o buclă?
Utilizați utilizați o buclă în timp ce atunci când vrei o buclă să se repete
un număr necunoscut de ori, dar aceasta eventual ar putea să nu ruleze deloc.
Un exemplu foarte comun de un timp looping utilizat
este de a rula fluxul de control pentru un joc.
Ar putea să nu știi cât de mult timp utilizator va fi joc,
dar doriți să păstrați face același lucru.
Actualizarea pozițiile diverse sprites de pe bord.
Vrei pentru a menține lucrurile deplasează în orice moment,
dar nu știți în cazul în care utilizator se va opri redarea
sau atunci când se duc la a alerga afară de vieți.
Deci, o buclă în timp ce este într-adevăr bun pentru așa ceva.
Asta e un caz bună utilizare.
>> Pentru o face în timp ce bucla, e destul de similar.
Vrei o buclă pentru a repeta un necunoscut numărul de ori, dar cel puțin o dată.
S-ar putea folosi acest joc pentru o de asemenea, dar un caz de utilizare cu adevărat comun
este determinat de utilizator pentru intrare.
În general, s-ar putea spune ceva cum ar fi, da-mi un număr întreg pozitiv,
și s-ar putea pune asta în interiorul unui do în timp ce buclă.
Asa ca le va cere întotdeauna la puțin o dată pentru un număr întreg pozitiv.
Dacă ei vă dau un număr întreg pozitiv, s-ar putea rupe din bucla.
S-ar putea face.
Expresia booleană în do timp ar putea fi false.
>> Și nu le va cere din nou.
Dacă ei vă dau un număr negativ, în cazul în care ele de tip un cuvânt sau ceva care este
nu într-adevăr util pentru tine, ar putea folosi
face în timp ce bucla să se întoarcă și să facă l din nou și din nou și din nou.
Cu siguranta ai vrea să întreb le pentru a vă oferi un număr dată,
dar nu știu cum de multe ori după ce că acestea ar putea fi dăunătoare.
Și astfel o face în timp ce este o mare utilizare caz pentru a solicita confirmarea utilizatorului pentru intrare.
Și o pentru bucle utiliza caz tipic este atunci când
doriți să repetați o buclă un număr discret de ori,
dacă nu s-ar putea știu de câte ori
în momentul în care programul este compilat.
>> Deci, de exemplu, poate aveți un program în cazul în care vă va solicita utilizatorul pentru un număr.
Și vor intra 100.
Și apoi pentru bucla va În acest caz, executați de 100 de ori.
Sau poate vor intra 1000 în programul tău
și apoi executați bucla de 1.000 de ori.
Este un anumit număr de ori.
Ei nu neapărat știu ce număr
este programul momentul este compilat.
Nu e ca o buclă în timp ce în cazul în care ar putea fi infinit.
E mai degrabă un număr care pur și simplu nu știu.
Acum, chiar dacă am evidențiate toate aceste cazuri de utilizare,
trebuie să știți că, în destul de de mult în fiecare circumstanță,
vă pot schimba toate trei dintre aceste bucle.
Puteți utiliza un pentru buclă în cazul în care ar folosi altfel o buclă în timp ce.
Puteți utiliza un pentru buclă ori de câte ori ai folosi o face în timp ce buclă și așa mai departe.
Acesta poate fi un pic dificil, uneori, astfel, în general, este o bună practică
să adere la un caz tipic de utilizare.
Folosiți un do în timp ce bucla, dacă vrut ceva o dată, cel puțin.
Utilizați o pentru buclă, dacă vrei să faci ceva un anumit număr de ori.
La urma urmei, de aceea există trei tipuri diferite de bucle.
>> Astfel, ei pot fi utilizate în contextul potrivit.
Dar pot schimba le, dacă doriți.
Dacă vă simțiți confortabil cu bucle în timp ce și vrei mereu să utilizați în timp ce buclele.
Este ceva care puteți face, deși
ar putea fi un pic punct de vedere sintactic dificil, în cazul în care un buclă de
ar fi mult mai simplă.
>> Numele meu este Doug Lloyd și acest lucru este CS50.