>> DOUG LLOYD: Molt bé, així parlarem de bucles.
Així bucles són una mena de fresc perquè permeten al seu programa
per executar línies de codi una i altra vegada i una altra.
En repetides ocasions, sense haver de copiar i enganxar o d'una altra manera repetir-los.
Hi ha tres principals tipus de bucles ja ho veuràs.
Vostè probablement tindrà ocasió d'utilitzar cada un d'ells a mesura que avança a través CS50.
Alguns d'aquests bucles són bastant familiar per a vostè a partir de zero,
així que de nou, com ho vam fer amb els condicionals, posarem al costat de l'altre
si hi ha una analogia podem treure.
>> En primer lloc és per sempre des de zero, que es compara amb while (true).
Això és el que anomenem un bucle infinit.
Les línies de codi entre l'arrissat claus, igual que les peces del trencaclosques
que encaixen dins de la C del bloc de sempre,
executarà diverses vegades de dalt a baix, una i altra vegada i una altra,
per sempre.
Després de tot, si vostè recorda la nostra discussió d'expressions booleanes,
veritable és sempre cert.
Així que si el que estem fent una cosa tan llarg com a veritable
es cert-- sembla una mica Silly-- veritat sempre és cert, pel que sempre va a córrer.
Va a córrer per sempre segles dels segles fins que
trobar una manera de sortir-ne amb una sentència break, que al seu torn,
vam veure fa un moment ens estaven parlant d'interruptor.
>> O en cas contrari només matar al nostre programa, que dit sigui de passada,
si mai et trobes en un situació amb un bucle infinit
i vostè no sap com aturar el seu programa s'executi.
Només ha de donar-li el control i C i que va a matar el seu programa per a vostè.
Però això, de nou, és anomenat un bucle infinit.
És un bucle que s'executarà sempre.
Ara, mentre bucles no són sempre infinit, perquè també
podem substituir el booleana expressió amb alguna cosa
una mica més útil que simplement veritat.
Així que aquí està un altre exemple.
Mentre que alguns Boolean i expressió i suports a continuació arrissat.
Això és més o menys anàloga repetir fins que, a partir de zero.
Tot i que en un segon, vaig a explicar la diferència.
>> Així que en C, si l'expressió booleana dins el bucle while
com a resultat true, les línies de codi entre les claus
executarà repetidament una i altra i una altra fins expressió booleana
avalua a fals.
Així, per exemple, és possible que tenir algun tipus de comptador.
Així que dir que al principi de aquest bucle dir int x és igual a zero.
Mentre que x és menor que 100, fer un parell coses dins que les claus,
a continuació, en el final del seu cicle, vostè diu x plus plus, que estan incrementant x.
Finalment x obtindran 100 i vostè
parar perquè la condició x és menor que 100
ja no serà cert com aviat com x és igual a 100.
100 és no menor de 100.
>> Ara un tant confusament, el comportament del bloc zero s'inverteix.
Així que tenir molta cura si es tracta de la seva primera incursió en l'ús de bucles.
Bàsicament, la repetició fins el bloc en Rasguño
es repetirà alguna cosa una i altra vegada i una altra,
fins que l'expressió, l'operador booleà expressió en l'hexàgon és cert.
Així serà seguir fent fins que sigui cert.
Mentrestant, el bucle while voluntat continuarà fins que és falsa.
Així que són molt similars, però hi ha aquesta poca distinció només
tenir cura de tot el que facis la seva primera incursió de la transició
Scratch al c.
El següent tipus de bucle és en realitat bastant similar.
Es diu el do while.
Aquest bucle s'executarà totes les línies de codi entre les claus un cop,
i després es comprovarà l'expressió booleana.
Si l'expressió booleana avalua com true,
que va a tornar enrere i repetir aquest procés una i altra
i una altra vegada fins a la Booleana expressió s'avalua com a falsa.
Així que aquest bucle, a diferència d'un bucle while, és garantit per funcionar almenys una vegada.
Això pot ser molt útil.
>> Finalment, tenim un bucle for.
Per bucles són tipus de sintàcticament poc atractiu
i hi ha molt a fer d'aquí, així que tinguin paciència amb mi
com tractem de trencar aquestes peces separades.
En general, el cas d'ús d'un bucle for és vostè
vull repetir una cosa una nombre específic de vegades.
En aquest exemple aquí, Tinc el bloc de repetició
des de zero, que és anàloga a la de bucle
en C, repetint una cosa 10 vegades.
I el bucle for a l'esquerra cal
és un bucle de quatre que faria el mateix.
Això aniria 10 vegades.
Comptant des de zero, incrementar cada pas del bucle.
I seguim fent això fins que i és més petit que 10.
>> Llavors, què passa?
Hi ha un munt de codi d'allà.
Anem a trencar cap avall per el que està succeint pas
a pas a mesura que cavar a través d'un bucle for.
La primera cosa que va passar és la variable comptador és central.
Tot a l'esquerra de la primera punt i coma dins el parèntesi
s'executa.
En aquest cas, estem dient int i és igual a 0.
Declarar una nova variable anomenada i, que les variables és un tipus sencer
i estem dient que el valor a l'interior aquesta variable serà zero.
>> La segona cosa que fem és llavors avaluem immediatament
l'expressió booleana.
Expressió booleana es troba a la mitjà dels dos punts i comes.
I és menys de 10.
Això és veritat, no?
Acabem de dir i és igual a zero, i així 0 és menor que 10,
i de manera que la condició que és veritable i ho farem ara
procedir a executar el cos del bucle.
Si era falsa.
Si, per exemple, li vaig dir en lloc de i és igual a 0 no em va dir i és igual a 15,
int i és igual a 15.
Bé 15 és no menys de 10, per la qual cosa mai entrar en el cos del bucle
a causa de que l'expressió booleana caldria avaluar que és falsa.
>> Després anem a través de dalt a baix, ens trobem amb que el tancament de claudàtor,
una tercera cosa succeeix.
La variable comptador és incrementat, o més aviat, les línies
del codi d'un comunicat després de la segon punt i coma dins el
per bucles parèntesi s'executa.
Així que vam començar a terme per dient int i és igual a 0.
Després vam comprovar si o no l'expressió booleana és veritable.
0 és menor que, 10 per la qual cosa és veritat.
Així que anem a procedir en el cos del bucle.
Les coses van a succeir dins del bucle, i quan ens trobem que l'arrissat tancar
cotilla, la propera cosa que fer és que diem i plus, plus.
Jo era zero ara i és un.
Llavors, tornem a comprovar el valor de l'expressió booleana en el medi.
Un d'ells és menys de 10.
Així que anem a anar a través d'aquest processar una i altra vegada.
Anem a arribar a la clausura clau de nou.
Anem a incrementem i de 1 a 2 i 2-3.
I així successivament i així successivament i així successivament, fins que finalment el valor d'i es converteix en 10.
És 10 menys de 10?
No.
Comptant des de 0, hem anat a través de 10 iteracions del bucle.
Hem repetit 10 vegades, simplement com ho vam fer en el bloc de Scratch.
I això és bàsicament el procés per a un bucle de quatre.
>> Ara treure la codi real i posant-
en tan sols algunes declaracions generals bàsics.
Això és el que succeeix.
Totes les declaracions en començar s'executen primer.
És possible que hi hagi més d'un.
Llavors, l'expressió booleana es comprova.
Si l'expressió s'avalua com a veritable, executar el cos del bucle d'una sola vegada.
Si l'expressió s'avalua false, hem acabat.
Nosaltres no executem el cos del bucle en absolut.
Després que hem executat el cos del bucle d'una sola vegada,
llavors fem el que està en la part de la subhasta no.
Que sol ser serà una mena i plus, plus
o alguna cosa així, que modifica una variable de comptador.
Llavors, després de incrementem, ens comprovar l'expressió de nou
i repetir-les una vegada i una i una altra vegada fins a l'expressió és
ja no és cert.
>> Quins són els casos d'ús d'un bucle?
Utilitzeu utilitza un bucle while quan vols un bucle per repetir
un nombre indeterminat de vegades, però que possiblement podria no funcionar tot.
Un exemple molt comú de un temps de bucle s'utilitza
és executar el flux de control per a un joc.
Vostè pot no saber quant temps la usuari va a estar jugant,
però desitja conservar fent el mateix.
Actualització de les posicions de diversos sprites en el tauler.
Vostè vol mantenir les coses moviment en tot moment,
però vostè no sap quan el usuari va a deixar de jugar
o quan van que es quedi sense vides.
Així que un bucle while és realment bo per a alguna cosa així.
Això és un bon cas d'ús.
>> Per a un do while, és bastant similar.
Vols un bucle per repetir un desconegut nombre de vegades, però almenys una vegada.
Vostè pot usar això per a un joc també, però un cas d'ús molt comú
és preguntar a l'usuari per a l'entrada.
En general, es podria dir alguna cosa de la mateixa manera que, em dóna un nombre enter positiu,
i és possible posar aquest dins d'un do while.
Pel que sempre els demanarà a mínim un cop per a un enter positiu.
Si et donen un nombre enter positiu, és possible trencar el bucle.
Vostè pot ser fet.
L'expressió booleana en al mateix temps que fer podria ser fals.
>> I no et pregunti de nou.
Si et donen un nombre negatiu on que escrigui alguna paraula o alguna cosa que és
no és realment útil per vostè, és possible utilitzar la
do while per tornar i fer una i altra vegada i una altra.
Vostè definitivament vol demanar que et donin un nombre una vegada,
però vostè no sap quantes vegades després que fossin plagues.
I així un do, mentre que és un gran ús cas per preguntar a l'usuari per a l'entrada.
I una de bucles ús cas típicament és quan
desitja repetir un bucle un nombre discret de vegades,
encara que potser no conèixer el nombre de vegades
Actualment el programa es compila.
>> Així, per exemple, potser vostè té un programa on se sol·licita a l'usuari un nombre.
I entren 100.
I llavors el seu cicle for voluntat en aquest cas, córrer 100 vegades.
O potser que entrin 1000 en el seu programa
i executi el bucle de 1.000 vegades.
És un nombre específic de vegades.
Ells no ho fan necessàriament saber el que aquest nombre
és el programa actualment està compilat.
No és com un bucle while on podria ser infinit.
És més aviat un nombre que simplement no sap.
Ara tot i que tinc esbossats tots aquests casos d'ús,
vostè ha de saber que en molt molt cada circumstància,
vostè pot intercanviar tot tres d'aquests bucles.
Podeu utilitzar un bucle en el qual en cas contrari, utilitzar un bucle while.
Podeu utilitzar un bucle on vulgui haurà d'utilitzar un do while i així successivament.
Pot ser una mica difícil de vegades, en general, és una bona pràctica
per adherir-se a un cas d'ús típic.
Utilitzeu un do while si volia alguna cosa una vegada, almenys.
Utilitzeu un bucle for si vols fer alguna cosa un nombre específic de vegades.
Després de tot, és per això que hi ha tres tipus diferents de bucles.
>> Així que es poden utilitzar en el context adequat.
Però vostè pot intercanviar ells si volen.
Si vostè se sent còmode amb bucles mentre i sempre es desitja utilitzar mentre bucles.
És una cosa que vostè pot fer, encara que
pot resultar una mica sintàcticament complicat, on un bucle for
seria molt més senzill.
>> El meu nom és Doug Lloyd i això és CS50.