>> DOUG LLOYD: Dobre, tak hovorme o slučiek.
Takže slučky sú trochu v pohode pretože umožňujú program
vykonať riadky kódu znovu a znovu a znovu.
Opakovane, bez toho aby musel kopírovanie a vložte alebo inak opakovať.
Existujú tri hlavné druhy slučiek uvidíte.
Pravdepodobne budete mať príležitosť použiť každý z nich, ako budete postupovať cez CS50.
Niektoré z týchto slučiek sú dosť poznáte od nuly,
tak znova, ako sme to urobili s podmienkové, Dáme ich vedľa seba
ak existuje analógie môžeme čerpať.
>> Prvý z nich je navždy od nuly, čo je porovnateľné s while (true).
To je to, čo nazývame nekonečnej slučke.
Riadky kódu medzi kučeravé traky, podobne ako kúsky skladačky
ktoré sa zmestia dovnútra C z navždy zablokovať
bude vykonávať opakovane zhora dolu, znovu a znovu a znovu,
navždy.
Koniec koncov, ak si spomínate otázky Diskusia boolovských výrazov,
pravda je vždy pravda.
Takže ak robíme niečo tak dlho, kým platí
je true-- to zdá trochu silly-- pravda je vždy pravda, tak to bude vždy spustiť.
Bude to beh na veky veky vekov, kým sme
nájsť spôsob, ako uniknúť z neho prestávka vyhlásenie, ktoré znova,
sme videli pred chvíľou sme hovorili o prepínačmi.
>> Alebo inak len zabíjať naše program, ktorý mimochodom,
ak ste niekedy ocitnete v Situácia s nekonečnej slučke
a neviete, ako to zastaviť váš program v behu.
Stačí kliknúť na kontrolu a C a že zabijete program pre vás.
Ale to je, opäť, je volal nekonečnej slučke.
Je slučku, ktorá bude prebiehať navždy.
Teraz, keď slučky nie sú vždy nekonečný, pretože tiež
môžeme nahradiť Boolean výraz s niečím
o niečo užitočnejšie než len pravda.
Tak tu je ďalší príklad.
Zatiaľ čo niektoré Boolean výraz a potom zložené zátvorky.
To je do značnej miery podobné opakovať, kým od nuly.
Aj keď sa v druhej, budem vysvetliť rozdiel.
>> Tak v C, pokiaľ logický výraz vnútri while
vyhodnocuje na hodnotu true, riadky kódu medzi zložené zátvorky
bude vykonávať opakovane znovu a znovu a znovu, kým logický výraz
vyhodnocuje ako nepravdivý.
Tak napríklad, môžete majú nejaký čítač.
Tak, že ste na začiatku táto slučka hovoria, int x sa rovná nule.
Aj keď x je menšia ako 100, urobiť pár veci vo vnútri, že zložené zátvorky,
potom na konci svojho cyklu, hovoríte X plus plus, budete postupne x.
Nakoniec x dostane až 100 a budete
zastaviť, pretože podmienkou x je menšia ako 100
už nebude pravdivé ako Akonáhle x je rovné 100.
100 nie je menšia ako 100.
>> Teraz trochu mätúci, správanie z poznámkového bloku je obrátený.
Takže byť naozaj opatrní, ak je to vaše prvé vpád do pomocou slučky.
V podstate, opakovanie kým blok v Scratch
bude opakovať niečo znovu a znovu a znovu,
až do prejavu, logický výraz v šesťuholníka, je pravda.
Tak to bude pokračovať v tom že kým je to pravda.
Do tej doby budú while aj naďalej robiť to, kým to je nepravdivé.
Takže sú to celkom podobné, ale tam je, že malý rozdiel práve
dať pozor hlavne, ako si urobiť vaše prvé vpád z prechodu
na Scratch do cca.
Ďalší druh slučky vlastne celkom podobné.
Volá sa robiť, kým slučke.
Táto slučka bude vykonávať všetky riadky kódu medzi zložené zátvorky raz,
a potom to bude kontrolovať Boolean výraz.
Ak logický výraz vyhodnotená ako true,
to bude vrátiť späť a opakovať tento proces znovu a znovu
dokola, kým Boolean výraz vyhodnotený ako nepravdivý.
Takže táto slučka, na rozdiel od while, je zaručená bežať aspoň raz.
To môže byť celkom užitočné.
>> A konečne, máme pre slučku.
Pre slučky sú druh syntakticky neatraktívne
a je tu veľa deje tu, takže majte so mnou
ako sa snažíme prelomiť tieto kúsky od seba.
Všeobecne platí, že prípad použitia zo slučky for, je vám
chcú zopakovať niečo určitý počet časov.
V tomto príklade, Mám opakovanie blok
od nuly, čo je analogická cyklu for
v C, opakujúce sa niečo 10 krát.
A pre vedenie na ľavá tam, ktorý
je štyri slučky, ktorá by urobil to isté.
To by šlo 10 krát.
Počítanie od nuly, my prírastok každom priechode slučky.
A my sme pokračovať v tom, že kým i je menšia ako 10.
>> Takže čo sa stane?
Je tu celý rad kódu tam.
Poďme si rozobrať to na čo sa deje krok
za krokom, ako sme kopať prostredníctvom cyklu for.
Prvá vec, čo sa stalo, je premenná je počítadlo centrum.
Všetko na ľavej strane, ktorý ako prvý bodkočiarka v zátvorkách
vykonaný.
V tomto prípade, my sme povediac: int i = 0.
Deklarácia novú premennú s názvom i, že premenných je typ celé číslo
a hovoríme hodnotu vnútri že premenná bude nula.
>> Druhá vec, ktorú robíme, je sme sa potom okamžite vyhodnotiť
Boolean výraz.
Logický výraz je v Uprostred dva bodkočiarkami.
Aj je menšia ako 10.
To je pravda, že?
Práve sme povedal, že som sa rovná nula, a preto 0 je menšia ako 10,
a tak, že podmienka je pravda, a budeme teraz
pristúpiť k prevedenie tela slučky.
Ak by to bolo falošné.
Ak je, napríklad, povedal Aj miesto i = 0 tam som povedal, že som sa rovná 15,
int i rovná 15.
No 15 nie je menšia ako 10, a tak sme by nikdy do tela slučky
pretože logický výraz by vyhodnotiť byť nepravdivý.
>> Potom, čo sme sa prejsť od zhora nadol, stretávame že uzatvárajúce zloženú zátvorkou,
tretín vec sa stane.
Premenná je počítadlo zvýšený, alebo skôr linky
kódu z vyhlásení po tom, čo Druhá bodkočiarka vnútri
pre slučky zátvorkách je vykonaný.
Tak sme sa začať tým, povediac: int i = 0.
Potom sme sa skontrolovať, či je alebo nie je Boolean výraz je pravdivý.
0 je menšie ako 10 tak, že je to pravda.
Takže budeme postupovať do tela slučky.
Veci sa bude diať vnútri slučky, a keď sa stretneme, že uzavretie kučeravé
rovnátka, ďalšia vec, ktorú urobiť, je povedať aj plus, plus.
Bol som nula teraz som je jeden.
Potom sme znovu skontrolovať hodnotu Boolean výraz v stredu.
Jedným z nich je menej ako 10.
Takže pôjdeme cez to spracovať znova a znova.
Dostaneme sa k uzavretiu Znovu zložená zátvorka.
Budeme zvýšiť aj od 1 až 2 a od 2 do 3.
A tak ďalej, a tak ďalej a tak ďalej, až kým Nakoniec som ich hodnota stane 10.
Je o 10 menej ako 10?
Nie.
Počítanie od 0, sme preč cez 10 iterácií slučky.
Sme opakoval 10 krát, len ako sme to urobili v Scratch bloku.
A tak to je v podstate Spôsob štyri slučky.
>> Teraz odnášať Vlastný kód a uvedenie
len v niektorých základných všeobecných vyhlásení.
Tu je to, čo sa stane.
Všetky príkazy v spustiť sú vykonané ako prvé.
Môžete mať viac ako jeden.
Potom je logický výraz je kontrolovaná.
Ak výraz vyhodnotí ako true, spustiť telu loop raz.
Ak sa výraz vyhodnotí false, sme hotoví.
Nechceme popraviť telo slučky vôbec.
Potom, čo sme popravený telo slučky raz,
Potom sme to, čo je v časť prírastok tam.
Ktorý je zvyčajne bude niečo ako ja plus, navyše
alebo niečo také, že modifikuje premennú počítadla.
Potom, čo sme prírastok, sme znova skontrolovať výraz
a opakujte tieto kroky znovu a znovu dokola, kým je výraz
už nie je pravda.
>> Takže aké sú prípady použitia pre sláčiky?
Použiť môžete použiť while keď Chcete slučka opakovať
neznámy počet časy, ale to možno nemusí bežať vôbec.
Naozaj obyčajný príklad Chvíľu opakovanie používaný
je spustiť riadenie toku pre hru.
Tie nemusia vedieť, ako dlho Užívateľ sa bude hrať,
ale chcete zachovať robiť to isté.
Aktualizácie polôh rôzne škriatkovia na palube.
Ak chcete udržať veci pohybujúce sa po celú dobu,
ale neviete, kedy užívateľ chystá prestať hrať
alebo keď idú dôjdu životy.
Takže zatiaľ čo slučka je naozaj dobré pre niečo také.
To je dobrý prípad použitia.
>> Pre robiť, zatiaľ čo slučky, je to celkom podobné.
Chcete slučka opakovať neznáma počet opakovaní, ale aspoň raz.
Dalo by sa to použiť pre hru taky, ale to naozaj častý prípad použitia
ich vyzve užívateľa na vstup.
Všeobecne platí, dalo by sa povedať niečo rád, dajte mi kladné číslo,
a môžete dať, že vnútri robiť, zatiaľ čo slučky.
Takže to bude vždy spýtajte sa ich na aspoň raz na kladné celé číslo.
Ak sa vám kladné číslo, vy by ste mohli rozbiť zo slučky.
Tie by mohli byť vykonané.
Boolean výraz v urob zatiaľ čo by mohol byť falošný.
>> A vy im to znovu opýtať.
Ak sa vám záporné číslo, nenapíšu nejaké slovo alebo niečo, čo je
naozaj užitočné vy, môžete použiť
robiť, zatiaľ čo slučka sa vrátiť a urobiť to znovu a znovu a znovu.
Určite sa chcem opýtať, je, aby vám číslo raz,
ale neviete, koľkokrát po ktorej by mohli byť škodlivé organizmy.
A tak robiť, keď je to skvelý použitie puzdro pre vyzvanie užívateľov pre vstup.
A pre slučky použitie prípad, zvyčajne je, keď
Ak chcete opakovať slučku diskrétny počet časov,
keď si možno nie viem, koľkokrát
v okamihu, keď program je preložený.
>> Tak napríklad, možno máte program kde ste vyzve užívateľa na zadanie čísla.
A oni zadajte 100.
A potom sa vaše pre slučka v tomto prípade spustený 100 krát.
Alebo možno, že vstúpi 1000 vo vašom programe
a potom spustiť slučku 1000 krát.
Je to určitý počet časov.
Nemusí nutne Viete, čo to číslo
je program moment je zostavený.
Nie je to ako while kde by to mohlo byť nekonečný.
Je to dosť čísla ktoré ste práve neviem.
Teraz, aj keď som načrtnuté všetky tieto prípady použitia,
mali by ste vedieť, že v celkom veľa každú okolnosť,
môžete Interchange všetky tri z týchto slučiek.
Môžete použiť pre sláčiky, kde sa by inak využiť cyklu while.
Môžete použiť pre sláčiky kdekoľvek inde by ste použiť robiť, zatiaľ čo slučky a tak ďalej.
To môže byť veľmi komplikovaná niekedy tak všeobecne, je to dobré praxe
dodržiavať typický prípad použitia.
Použite robiť, kým slučke, ak vás chcel niečo raz, prinajmenšom.
Pomocou slučky, ak chcete robiť niečo, čo určitý počet časov.
Koniec koncov, to je dôvod, prečo existuje tri rôzne typy slučiek.
>> Takže môžu byť použité v správnom kontexte.
Ale môžete Interchange je, ak chcete.
Ak máte pocit, pohodlne sa while a chcete vždy používať cykly while.
Je to niečo, čo môžete urobiť, aj keď to
by mohlo byť trochu syntakticky zradné, kde pre slučka
by bolo oveľa jednoduchšie.
>> Volám sa Doug Lloyd a to je CS50.