>> DOUG LLOYD: Rendben, beszéljünk hurkok.
Tehát hurkok egyfajta hűvös mert lehetővé teszik a programot
hogy végre sor kódot újra és újra és újra.
Ismételten, anélkül, hogy másolja -et vagy más módon megismételni.
Három fő féle hurkok látni fogod.
Akkor valószínűleg alkalmuk mindegyik, amit elért a CS50.
Néhány ilyen hurkok elég ismerős neked a semmiből,
így ismét, mint mi a feltételes, feltesszük őket egymás mellé
ha van egy analógia tudjuk felhívni.
>> Először is örökre a semmiből, amely összehasonlítja a while (true).
Ez hívjuk végtelen ciklusba.
A sornyi kódot a göndör nadrágtartó, ugyanúgy, mint a puzzle-darabokat
hogy elférjen a C Az örökké blokkolja,
végrehajtja többször fentről lefelé, újra és újra és újra,
örökre.
Elvégre, ha felidézzük tárgyalása logikai kifejezések,
Igaz mindig igaz.
Tehát, ha csinálunk valami olyan hosszú, mint igaz
A true-- úgy tűnik, egy kicsit silly-- igaz mindig igaz, így lesz mindig fut.
Ez lesz futhatsz örökké, és örökkön-örökké, amíg nem
megtalálja a módját, hogy kitörjön belőle a break, ami ismét,
láttunk egy darabig ezelőtt beszélgettünk kapcsolót.
>> Vagy másképpen csak ölni a programot, ami egyébként,
Ha valaha is találja magát egy helyzet végtelen ciklus
és nem tudod, hogyan kell megállítani A program fut.
Csak nyomd meg a Ctrl + C és a hogy megölöm a program az Ön számára.
De ez megint van végtelen ciklusnak hívják.
Ez egy hurkot, hogy futni fog örökké.
Most, míg a hurkok nem Mindig végtelen, mert azt is
akkor cserélje ki a logikai véleménynyilvánítás valami
egy kicsit hasznosabb, mint igaz.
Tehát itt egy másik példa.
Míg néhány logikai véleménynyilvánítás, majd zárójelek segítségével.
Ez elég sok hasonló megismételni, amíg, a semmiből.
Bár egy második, én magyarázni a különbséget.
>> Tehát a C, ha a logikai kifejezés belsejében a while ciklus
igaz értékű, a vonalak kód kapcsos zárójelek közötti rész
végrehajtja ismételten újra és újra és újra, amíg logikai kifejezés
értéke hamis.
Így például, lehet, hogy Van valami ellen.
Tehát mondjuk elején Ez a hurok mondani int x nullával egyenlő.
Míg x kisebb, mint 100, nem egy pár dolog benne, hogy kapcsos zárójelek
majd a végén a hurok, akkor azt mondják, x plus plus, akkor az x értékhez.
Végül x lesz 100 és akkor
megállítani, mert a feltétel x kisebb, mint 100
már nem lesz igaz amint x egyenlő 100.
100 nem kevesebb, mint 100.
>> Most némi zavart a viselkedése A semmiből blokk megfordul.
Tehát legyen nagyon óvatos, ha ez az első behatolás a hurok.
Alapvetően az ismétlés amíg blokk Scratch
ismétli valamit újra és újra és újra,
amíg a kifejezés, a Boole- kifejezést a hatszög igaz.
Így lesz ez csinálom amíg ez igaz.
Eközben a while ciklus lesz továbbra is csinálni, amíg ez hamis.
Tehát ők nagyon hasonló, de ott van az a kis különbség csak
hogy legyen óvatos, különösen mint te, hogy az első behatolás-re átállás
karcolja be c.
A következő fajta hurok valójában nagyon hasonlóak.
Ezt hívják a do while ciklus.
Ez a hurok végrehajtja az összes vonal A kód kapcsos zárójelek közötti rész egyszer,
és akkor ellenőrzi A logikai kifejezés.
Ha a logikai kifejezés értéke igaz,
ez megyek vissza, és ismételje ezt a folyamatot újra és újra
és újra, amíg a logikai kifejezés értéke false.
Szóval ez a hurok, ellentétben a while ciklus, a Garantált futni legalább egy alkalommal.
Ez is elég hasznos.
>> Végül, van egy hurok.
Mert hurkok fajta mondattanilag vonzó
és van egy csomó folyik itt, így a medve velem
ahogy megpróbálja megtörni ezeket a darabokat egymástól.
Általában a használati eset A for ciklus akkor
szeretnénk megismételni valamit egy adott számú alkalommal.
Ebben a példában itt, Van ismétlés blokk
a semmiből, ami analóg a for ciklus
C, ismétlődő valami 10-szer.
És az a hurok A bal oldalon, amely
egy négy hurok nem ugyanaz a dolog.
Ez menne 10 alkalommal.
Számítva nulla, akkor növekmény minden menetben a hurok.
És mi csinálom, hogy amíg kevesebb, mint 10.
>> Tehát mi történik?
Van egy csomó kód van.
Nézzük csak le mi történik lépésben
lépésre, ahogy ásni egy ciklusban.
Az első dolog, ami történt A számláló változó központjában.
Minden, a bal oldalon, hogy az első pontosvessző zárójelben
végrehajtásra kerül.
Ebben az esetben, mi mondván int i értéke 0.
Nyilvánító új változó az i, hogy a változók egy Integer
majd azt mondjuk: az értéket belülről hogy a változó lesz nulla.
>> A második dolog, amit tehetünk, Ezután azonnal értékelni
A logikai kifejezés.
Kifejezés nem a közepén a két pontosvessző.
I kisebb, mint 10.
Ez igaz itt, ugye?
Mi csak annyit mondott i értéke nulla, és így 0, kevesebb, mint 10,
és így ez a feltétel Igaz, és mi most
folytassa végre a hurok teste.
Ha ez hamis.
Ha például azt mondta, ahelyett, i értéke 0-hoz mondtam i értéke 15,
int i értéke 15.
Nos 15 nem kevesebb, mint 10, így soha nem adja meg a hurok teste
mert a logikai kifejezés nem lenne értékelni, hogy hamis.
>> Miután átmegyünk a tetejétől az aljáig, találkozunk, hogy a záró kapcsos zárójel,
egy harmadik dolog történik.
A számláló változó növekszik, vagy inkább a vonalak
A kódex egy nyilatkozatot követően második pontosvessző belsejét
A hurkok zárójelben kerül végrehajtásra.
Tehát kezdjük el mondván int i értéke 0.
Aztán ellenőrizze, vajon nem A logikai kifejezés igaz.
0 kevesebb, 10 tehát az igaz.
Mi is így fogjuk folytatni a testbe a hurok.
Dolgok fognak történni a cikluson belül, és amikor találkozunk, hogy záró kapcsos
zárójel, a következő dolog, amit tennie, hogy azt mondjuk, I Plus, plusz.
Én nulla volt most nekem van egy.
Ezután ismét ellenőrizni az érték a logikai kifejezés a közepén.
Az egyik az, kevesebb, mint 10.
Szóval megyünk ezen keresztül feldolgozni újra és újra.
Mi lesz a záró kapcsos zárójel újra.
Majd növeljük az i-re 1-2 és 2-3.
És így tovább és így tovább, és így tovább, amíg Végül is értéke 10 lesz.
10 kevesebb, mint 10?
Nem.
Számítva 0, mentünk a 10 ismétléseket a hurok.
Már 10-szer megismétel, csak mint mi a Scratch blokk.
És ez az alapvetően Eljárás a négy hurok.
>> Most elvegyék a tényleges kódot, és üzembe
mindössze néhány alapvető általános megállapításokat.
Itt van, mi történik.
Összes állítása kezdeni hajtják végre először.
Lehet, hogy több mint egy.
Ezután a logikai kifejezés van jelölve.
Ha a kifejezés igaz, végrehajtja a test a hurok egy időben.
Ha a kifejezés értéke hamis, végünk.
Mi nem teljesíti a a hurok teste egyáltalán.
Miután mi már elvégeztük a szerv a hurok egy alkalommal,
mi majd tennie, ami növelés részre van.
Ami általában lesz valami ilyesmit i plusz, plusz
vagy valami ilyesmi, hogy módosítja a számláló változó.
Aztán, miután növedék, mi ellenőrizze a véleménynyilvánítás újra
és ismételje ezeket a lépéseket újra és újra és újra, amíg a kifejezés
már nem igaz.
>> Tehát mi a használati esetek a hurok?
Használja használata while ciklus során akarsz egy hurok megismételni
ismeretlen számú alkalommal, de ez esetleg lehet, hogy nem futtatja le.
Egy igazán tipikus példája Egy idő hurok használják
ha fut az ellenőrzési folyamatok egy játék.
Lehet, hogy nem tudom, milyen hosszú a felhasználói fog játszani,
de meg akarja tartani ugyanazt a dolgot.
Frissítése az álláspontok Különböző sprite a táblán.
Meg szeretné tartani a dolgokat mozgó mindenkor,
de nem tudom, mikor a használati fog abba a játékot
vagy ha mennek hogy elfogy az élete.
Tehát egy while ciklus valóban jó valami ilyesmi.
Ez egy jó hasznát ügyben.
>> A do while ciklus, ez elég hasonló.
Akarsz egy hurok megismételni egy ismeretlen számú alkalommal, de legalább egyszer.
Lehet, hogy használja ezt a játékot is, de egy igazán szokásos alkalmazása
a felhasználó megkérdezése a bemenet.
Általában, mondhatnánk valamit mint, adj egy pozitív egész szám,
és lehet, hogy tegye, hogy belsejében egy do while ciklus.
Így mindig kérdezzen őket legalább egyszer egy pozitív egész szám.
Ha kapsz egy pozitív egész szám, lehet, hogy kitörjön a hurok.
Meg lehet tenni.
A logikai kifejezés a A nem, miközben lehet, hogy hamis.
>> És akkor nem fogja kérni őket újra.
Ha kapsz egy negatív szám, ahol ők be is szót vagy valamit, ami
Nem igazán hasznos Ön akkor használhatja a
ne while ciklus, hogy menjen vissza, és nem Újra és újra és újra.
Ön határozottan szeretném megkérdezni, őket, hogy kapsz egy számot egyszer,
de nem tudom, hányszor után, hogy lehet, hogy a kártevők.
És így a do miközben ez egy nagyszerű használatra esetében a felhasználó megkérdezése a bemenet.
És a hurkok használni esetében jellemzően az, amikor
meg akarja ismételni a hurok diszkrét számú alkalommal,
ha nem is tudni, hogy hányszor
pillanatában a program össze.
>> Így például, talán van egy program, ahol kérnek a felhasználótól egy számot.
És adja meg a 100.
És akkor a for ciklus Ebben az esetben a futtatni 100-szor.
Vagy lehet, hogy be 1000 a programban
majd futtatni a hurok 1000 alkalommal.
Ez egy meghatározott számú alkalommal.
Ezek nem feltétlenül tudom, mi ez a szám
az a pillanat program összeállítása.
Nem olyan, mint egy while ciklus ahol ez lehet végtelen.
Elég sok hogy csak nem tudom.
Most bár én már vázolt mindezek használati esetek,
tudnia kell, hogy a szép sok minden körülményt,
akkor cserélje meg minden három ilyen hurkok.
Használhatja a for ciklus, ahol egyébként használja a while ciklus.
Használhatja a for ciklus bárhova azt használja a do while és így tovább.
Ez lehet egy kicsit trükkös néha, így általában ez egy jó gyakorlat
hogy csatlakozzanak egy tipikus felhasználása esetén.
Használja a do while ciklus ha akart valamit egyszer, legalább.
Használjon egy ciklusban, ha akarsz csinálni valamit egy bizonyos számú alkalommal.
Végtére is, ez miért van Három különböző hurkok.
>> Így lehet használni a megfelelő kontextusban.
De lehet felcserélni őket, ha akarod.
Ha úgy érzi, kényelmes, while és azt szeretné használni, míg hurkok.
Ez valami olyasmi, meg tudod csinálni, bár
Lehet, hogy egy kicsit szintaktikailag trükkös, ahol a for ciklus
lenne sokkal egyszerűbb.
>> A nevem Doug Lloyd és ez CS50.