>> DOUG LLOYD: Dobře, tak mluvme o smyček.
Takže smyčky jsou trochu v pohodě protože umožňují program
vykonat řádky kódu znovu a znovu a znovu.
Opakovaně, aniž by musel kopírování a vložte nebo jinak opakovat.
Existují tři hlavní druhy smyček uvidíte.
Pravděpodobně budete mít příležitost použít každý z nich, jak budete postupovat přes CS50.
Některé z těchto smyček jsou dost znáte od nuly,
tak znovu, jako jsme to udělali s podmínkové, Dáme je vedle sebe
pokud existuje analogie můžeme čerpat.
>> První z nich je navždy od nuly, což je srovnatelné s while (true).
To je to, co nazýváme nekonečné smyčce.
Řádky kódu mezi kudrnaté šle, podobně jako kousky skládačky
které se vejdou dovnitř C z navždy zablokovat
bude provádět opakovaně shora dolů, znovu a znovu a znovu,
navždy.
Koneckonců, pokud si vzpomínáte dotazy Diskuse booleovských výrazů,
pravda je vždy pravda.
Takže pokud děláme něco tak dlouho, dokud platí
je true-- to zdá trochu silly-- pravda je vždy pravda, tak to bude vždy spustit.
Bude to běh na věky věky věků, dokud jsme
najít způsob, jak uniknout z něj přestávka prohlášení, které znovu,
jsme viděli před chvílí jsme mluvili o přepínači.
>> Nebo jinak jen zabíjet naše program, který mimochodem,
pokud jste někdy ocitnete v Situace s nekonečné smyčce
a nevíte, jak to zastavit váš program v běhu.
Stačí kliknout na kontrolu a C a že zabijete program pro vás.
Ale to je, opět, je volal nekonečné smyčce.
Je smyčku, která bude probíhat navždy.
Teď, když smyčky nejsou vždy nekonečný, protože také
můžeme nahradit Boolean výraz s něčím
o něco užitečnější než jen pravda.
Tak tady je další příklad.
Zatímco některé Boolean výraz a pak složené závorky.
To je do značné míry obdobné opakovat, dokud od nuly.
I když se v druhé, budu vysvětlit rozdíl.
>> Tak v C, pokud logický výraz uvnitř while
vyhodnocuje na hodnotu true, řádky kódu mezi složené závorky
bude provádět opakovaně znovu a znovu a znovu, dokud logický výraz
vyhodnocuje jako nepravdivý.
Tak například, můžete mají nějaký čítač.
Tak, že jste na začátku tato smyčka říkají, int x se rovná nule.
I když x je menší než 100, udělat pár věci uvnitř, že složené závorky,
pak na konci svého cyklu, říkáte X plus plus, budete postupně x.
Nakonec x dostane až 100 a budete
zastavit, protože podmínkou x je menší než 100
již nebude pravdivé jako Jakmile x je rovno 100.
100 není menší než 100.
>> Nyní poněkud matouce, chování z poznámkového bloku je obrácen.
Takže být opravdu opatrní, pokud je to vaše první vpád do pomocí smyčky.
V podstatě, opakování dokud blok v Scratch
bude opakovat něco znovu a znovu a znovu,
až do projevu, logický výraz v šestiúhelníku, je pravda.
Tak to bude pokračovat v tom že dokud je to pravda.
Do té doby budou while i nadále dělat to, dokud to je nepravdivé.
Takže jsou to docela podobné, ale tam je, že malý rozdíl právě
dát pozor hlavně, jak si udělat vaše první vpád z přechodu
na Scratch do cca.
Další druh smyčky vlastně docela podobné.
Jmenuje se dělat, zatímco smyčce.
Tato smyčka bude provádět všechny řádky kódu mezi složené závorky jednou,
a pak to bude kontrolovat Boolean výraz.
Jestliže logický výraz vyhodnocena jako true,
to bude vrátit zpět a opakovat tento proces znovu a znovu
dokola, dokud Boolean výraz vyhodnocen jako nepravdivý.
Takže tato smyčka, na rozdíl od while, je zaručena běžet alespoň jednou.
To může být docela užitečné.
>> A konečně, máme pro smyčku.
Pro smyčky jsou druh syntakticky neatraktivní
a je tu spousta děje tady, takže mějte se mnou
jak se snažíme prolomit tyto kousky od sebe.
Obecně platí, že případ užití ze smyčky for, je vám
chtějí zopakovat něco určitý počet časů.
V tomto příkladě, Mám opakování blok
od nuly, což je analogická cyklu for
v C, opakující se něco 10 krát.
A pro vedení na levá tam, který
je čtyři smyčky, která by udělal totéž.
To by šlo 10 krát.
Počítání od nuly, my přírůstek každém průchodu smyčky.
A my jsme pokračovat v tom, že dokud i je menší než 10.
>> Takže co se stane?
Je tu celá řada kódu tam.
Pojďme si rozebrat to na co se děje krok
za krokem, jak jsme kopat prostřednictvím cyklu for.
První věc, co se stalo, je proměnná je počítadlo centrum.
Vše na levé straně, který jako první středník v závorkách
proveden.
V tomto případě, my jsme řka: int i = 0.
Deklarace novou proměnnou s názvem i, že proměnných je typ celé číslo
a říkáme hodnotu uvnitř že proměnná bude nula.
>> Druhá věc, kterou děláme, je jsme se pak okamžitě vyhodnotit
Boolean výraz.
Logický výraz je v Uprostřed dva středníky.
I je menší než 10.
To je pravda, že?
Právě jsme řekl, že jsem se rovná nula, a proto 0 je menší než 10,
a tak, že podmínka je pravda, a budeme teď
přistoupit k provedení těla smyčky.
Pokud by to bylo falešné.
Je-li, například, řekl I místo i = 0 tam jsem řekl, že jsem se rovná 15,
int i rovná 15.
No 15 není menší než 10, a tak jsme by nikdy do těla smyčky
protože logický výraz by vyhodnotit být nepravdivý.
>> Poté, co jsme se projít od shora dolů, setkáváme že uzavírající složenou závorkou,
třetin věc se stane.
Proměnná je počítadlo zvýšen, nebo spíše linky
kódu z prohlášení poté, co Druhá středník uvnitř
pro smyčky závorkách je proveden.
Tak jsme se začít tím, řka: int i = 0.
Pak jsme se zkontrolovat, zda je či není Boolean výraz je pravdivý.
0 je menší než 10 tak, že je to pravda.
Takže budeme postupovat do těla smyčky.
Věci se bude dít uvnitř smyčky, a když se setkáme, že uzavření kudrnaté
rovnátka, další věc, kterou udělat, je říci i plus, plus.
Byl jsem nula teď jsem je jeden.
Pak jsme znovu zkontrolovat hodnotu Boolean výraz ve středu.
Jedním z nich je méně než 10.
Takže půjdeme přes to zpracovat znovu a znovu.
Dostaneme se k uzavření Znovu složená závorka.
Budeme zvýšit i od 1 až 2 a od 2 do 3.
A tak dále, a tak dále a tak dále, dokud Nakonec jsem je hodnota stane 10.
Je o 10 méně než 10?
Ne.
Počítání od 0, jsme pryč přes 10 iterací smyčky.
Jsme opakoval 10 krát, jen jako jsme to udělali v Scratch bloku.
A tak to je v podstatě Způsob čtyři smyčky.
>> Nyní odnášet Vlastní kód a uvedení
jen v některých základních obecných prohlášení.
Tady je to, co se stane.
Všechny příkazy v spustit jsou provedeny jako první.
Můžete mít více než jeden.
Poté je logický výraz je kontrolována.
Pokud výraz vyhodnotí jako true, spustit tělu loop jednou.
Jestliže se výraz vyhodnotí false, jsme hotovi.
Nechceme popravit tělo smyčky vůbec.
Poté, co jsme popraven tělo smyčky jednou,
Pak jsme to, co je v část přírůstek tam.
Který je obvykle bude něco jako já plus, navíc
nebo něco takového, že modifikuje proměnnou počítadla.
Poté, co jsme přírůstek, jsme znovu zkontrolovat výraz
a opakujte tyto kroky znovu a znovu dokola, dokud je výraz
už není pravda.
>> Takže jaké jsou případy použití pro smyčce?
Použít můžete použít while když Chcete smyčka opakovat
neznámý počet časy, ale to možná nemusí běžet vůbec.
Opravdu obyčejný příklad Chvíli opakování používán
je spustit řízení toku pro hru.
Ty nemusí vědět, jak dlouho Uživatel se bude hrát,
ale chcete zachovat dělat to samé.
Aktualizace poloh různé skřítci na palubě.
Chcete-li udržet věci pohybující se po celou dobu,
ale nevíte, kdy uživatel chystá přestat hrát
nebo když jdou dojdou životy.
Takže zatímco smyčka je opravdu dobré pro něco takového.
To je dobrý případ použití.
>> Pro dělat, zatímco smyčky, je to docela podobné.
Chcete smyčka opakovat neznámá počet opakování, ale alespoň jednou.
Dalo by se to použít pro hru taky, ale to opravdu častý případ použití
je vyzve uživatele pro vstup.
Obecně platí, dalo by se říct něco rád, dejte mi kladné číslo,
a můžete dát, že uvnitř dělat, zatímco smyčky.
Takže to bude vždy zeptejte se jich na alespoň jednou na kladné celé číslo.
Pokud se vám kladné číslo, vy byste mohli rozbít ze smyčky.
Ty by mohly být provedeno.
Boolean výraz v udělej zatímco by mohl být falešný.
>> A vy jim to znovu zeptat.
Pokud se vám záporné číslo, nezadají nějaké slovo nebo něco, co je
opravdu užitečné vy, můžete použít
dělat, zatímco smyčka se vrátit a udělat to znovu a znovu a znovu.
Určitě se chci zeptat, je, aby vám číslo jednou,
ale nevíte, kolikrát po které by mohly být škodlivé organismy.
A tak dělat, když je to skvělý použití pouzdro pro vyzvání uživatele pro vstup.
A pro smyčky použití případ, obvykle je, když
Chcete-li opakovat smyčku diskrétní počet časů,
když si možná ne vím, kolikrát
v okamžiku, kdy program je přeložen.
>> Tak například, možná máte program kde jste vyzve uživatele k zadání čísla.
A oni zadejte 100.
A pak se vaše pro smyčka v tomto případě spuštěn 100 krát.
Nebo možná, že vstoupí 1000 ve vašem programu
a pak spustit smyčku 1000 krát.
Je to určitý počet časů.
Nemusí nutně Víte, co to číslo
je program moment je sestaven.
Není to jako while kde by to mohlo být nekonečný.
Je to dost čísla které jste právě nevím.
Teď, i když jsem nastíněné všechny tyto případy použití,
měli byste vědět, že v docela hodně každou okolnost,
můžete Interchange všechny tři z těchto smyček.
Můžete použít pro smyčce, kde se by jinak využít cyklu while.
Můžete použít pro smyčce kdekoliv jinde byste použít dělat, zatímco smyčky a tak dále.
To může být velmi komplikovaná někdy tak obecně, je to dobré praxe
dodržovat typický případ užití.
Použijte dělat, zatímco smyčce, pokud vás chtěl něco jednou, přinejmenším.
Pomocí smyčky, pokud chcete dělat něco, co určitý počet časů.
Koneckonců, to je důvod, proč existuje tři různé typy smyček.
>> Takže mohou být použity ve správném kontextu.
Ale můžete Interchange je, pokud chcete.
Pokud máte pocit, pohodlně se while a chcete vždy používat cykly while.
Je to něco, co můžete udělat, i když to
by mohlo být trochu syntakticky ošidné, kde pro smyčka
by bylo mnohem jednodušší.
>> Jmenuji se Doug Lloyd a to je CS50.