>> Даг LLOYD: Добро, така ајде да зборуваме за петелки.
Па рунди се вид на ладно бидејќи тие ви дозволуваат вашата програма
да се изврши линии на код одново и одново и одново.
Постојано, без да мора да го копирате и ставете или на друг начин ги повтори.
Постојат три главни видови на јамки ќе видите.
Најверојатно ќе има прилика да се користат секој од нив како што напредокот преку CS50.
Некои од овие јазли се прилично запознаени за вас од нула,
Значи, повторно, како што направивме со conditionals, ние ќе ги стави рамо до рамо
ако постои аналогија може да се извлече.
>> Првиот е засекогаш од нула, која не се споредува со додека (вистинска).
Тоа е она што ние го нарекуваме бесконечна јамка.
На линии на код помеѓу кадрава загради, слично како на мозаик парчиња
кои се вклопуваат во внатрешноста на C од засекогаш го блокира,
ќе се изврши во неколку наврати од врвот до дното, одново и одново и одново,
засекогаш.
Впрочем, ако се потсетиме на нашите дискусија на Булова изрази,
вистина е секогаш точно.
Така да ако правиме нешто толку долго како вистинити
е тоа true-- изгледа малку silly-- вистина е секогаш точно, така што секогаш ќе се кандидира.
Тоа ќе работи засекогаш и вечни векови, додека ние
се најде начин да се пробие на него со изјава пауза, која повторно,
видовме пред малку, додека ние се зборува за прекинувач.
>> Или на друг начин само убие нашето Програмата, која патем,
ако некогаш се најдете во една Состојбата со бесконечна јамка
и не знаете како да се запре Вашата програма од трчање.
Само кликнете на контрола и Ц и дека ќе го убие вашата програма за вас.
Но, ова, повторно, е наречен бесконечна јамка.
Тоа е циклус кој ќе трае засекогаш.
Сега, додека не се јамки секогаш бесконечно, затоа што, исто така,
ние може да го замени на Булова изразувањето со нешто
малку повеќе корисни отколку само вистина.
Па еве уште еден пример.
А и некои Булова изразување и тогаш големите загради.
Тоа е доста аналогно да се повторува се додека, од нула.
И покрај тоа што во една секунда, јас ќе објасни разликата.
>> Па во C, ако Булова израз во внатрешноста на јамка, додека
е точен, линиите на код помеѓу големи загради
ќе се изврши постојано одново и одново и одново, додека Булова израз
неточен.
Така на пример, можеби ќе има некој вид на шанкот.
Така да се каже на почетокот на овој циклус велат int x е еднаква на нула.
А x е помалку од 100, направи неколку работите внатре дека големите загради,
а потоа на крајот на вашиот циклус, да се каже x плус плус, ти си ја зголемува х.
Х на крајот ќе се добие до 100 и вие
запре бидејќи состојбата x е помалку од 100
веќе нема да биде точно, како и штом x е еднаква на 100.
100 е не помалку од 100.
>> Сега малку збунувачки, на однесувањето на нула блок е обратна.
Значи да се биде навистина внимателен, ако тоа е вашиот прв набег користење петелки.
Во суштина, на повторување до блок во Скреч
ќе повторам нешто одново и одново и одново,
до израз, Булова изразување во шестоаголна е точно.
Па затоа ќе продолжиме да го правиме тоа се додека тоа е вистина.
Во меѓувреме, додека јамка ќе продолжи да го стори тоа се додека не е лажна.
Па тие се прилично слични, но тука е таа мала разлика само
да се биде внимателен, особено како да направите вашиот прв набег од транзиција
да се нула во в.
Следниот вид на јамка се всушност многу слични.
Таа се вика на направите додека јамка.
Овој циклус ќе ги извршува сите линии на код помеѓу големи загради еднаш,
и тогаш тоа ќе го провериме Булова израз.
Ако Булова израз е точен,
тоа нема да се врати и да го повтори тој процес одново и одново
и одново, додека Булова изразување неточен.
Па овој циклус, за разлика додека јамка, е гарантирано да работат најмалку еден пат.
Ова може да биде доста корисно.
>> И на крај, ние имаме за телефонска линија.
За петелки се вид на синтаксички непривлечна
а и нема многу ќе овде, па го носат со мене
како што се обиде да се пробие овие парчиња распаѓа.
Општо земено, употребата случај на за телефонска линија ви е
сакам да ја повторам нешто одреден број на пати.
Во овој пример тука, Имам повтори блок
од нула, што е аналогно на за телефонска линија
во C, повторувајќи нешто 10 пати.
И за телефонска линија за лево таму, што
е четири јамка што не би го направил истото.
Ова ќе одат 10 пати.
Сметајќи од нула, ние прираст секоја помине на јамка.
А ние продолжуваме да го прават тоа додека i е помал од 10.
>> Значи она што се случува?
Има едночудо код таму.
Ајде да го срушат да она што се случува чекор
по чекор, како што копаат низ за телефонска линија.
Првото нешто што ми се случило е шанкот променлива е центар.
Сè што од лево на тој прв запирка внатре во заградите
се извршува.
Во овој случај, ние сме велејќи int i изнесува 0.
За прогласување на нова променлива наречена I, дека променливи е број тип
и ние сме велејќи вредноста внатре таа променлива ќе биде нула.
>> Второто нешто што го направи е ние, а веднаш потоа се оцени
Булова израз.
Булова израз е во средината на две точка-запирка.
I е помалку од 10.
Тоа е точно тука, нели?
Ние само реков е еднаква на нула, и така што 0 е помалку од 10,
и така таа состојба Точно е и ние сега ќе се
продолжи да се изврши со органот на јамка.
Ако тоа е неточно.
Ако, на пример, си реков, наместо Јас изнесува 0 таму реков дека е еднакво на 15,
int i еднаква на 15.
15 и не е помалку од 10, па ние никогаш нема да влезе во телото на циклусот
бидејќи Булова израз таму ќе се оцени дека се лажни.
>> Откако ќе поминат низ од врвот до дното, наидуваме дека затворањето кадрава голема заграда,
трето нешто се случува.
Променлива контра е зголемува, или подобро кажано, на линии
на кодот на изјавата по Вториот запирка внатрешноста на
за петелки загради е погубен.
Па ние на проектот од страна велејќи int i изнесува 0.
Тогаш можеме да се провери дали е или не Булова израз е точен.
0 е помалку од 10, па тоа е вистина.
Па ние ќе треба да се продолжи во телото на јамка.
Нештата ќе се случуваат во внатрешноста на телефонска линија, и кога се сретнуваме дека затворањето кадрава
заграда, следниот нешто што ние направите е да се каже јас плус, плус.
Бев нула сега ми е еден.
Потоа, повторно се провери вредноста на Булова израз во средината.
Една од нив е помалку од 10.
Па ние ќе одат преку овој процес повторно и повторно.
Ние ќе дојдеме до затворање кадрава подготвуваат повторно.
Ќе прираст I од 1 до 2 и 2-3.
И така натаму и така натаму и така натаму, се додека на крајот на I вредност станува 10.
Е 10 помалку од 10?
Бр
Сметајќи од 0, ние сме поминале до 10 повторувања на јамка.
Ние сме се повторува 10 пати, само како што направивме во Скреч блок.
И така тоа е во основа на Процесот за четиричлено јамка.
>> Сега се намалува Крај на кодот, и тоа ставање
во само некои основни општи констатации.
Еве што се случува.
Сите изјави во почне се извршуваат во прв план.
Може да имате повеќе од еден.
Тогаш, Булова израз се проверува.
Ако изразот е точен, изврши органот на јамка едно време.
Ако изразот евалуира неточно, сме подготвени.
Ние не се изврши органот на јамка на сите.
Откако ќе ја извршува органот на јамка едно време,
тогаш ние го направи она што е во инкремент дел таму.
Што обично се случува да биде нешто како јас плус, плус
или нешто слично, дека модифицира контра променлива.
Потоа, откако ќе прираст, ние проверете израз повторно
и да го повтори оние чекори одново и одново и одново, додека изразот е
веќе не е точно.
>> Значи она што се употребата случаи за циклус?
Користете користите циклус, додека кога сакате јамка да се повторува
непознат број на моменти, но тоа веројатно не би можел да се кандидира на сите.
А навистина чест пример на време looping се користи
е да се работи на контрола на проток за игра.
Може да не знаат колку долго корисникот ќе биде пуштен,
но сакате да го задржите го прават истото.
Ажурирање на позициите разни sprites на табла.
Што сакате да го задржи нешта поместување на сите времиња,
но не знам кога корисникот ќе престанете да играте
или кога тие се случува да се кандидира од животот.
Па додека јамка е навистина добро за такво нешто.
Тоа е добра употреба случај.
>> По направите додека јамка, тоа е прилично слични.
Сакате јамка за да се повтори некоја непозната број на пати, а најмалку еднаш.
Можете да го користите овој за игра исто така, но многу честа употреба случај
се прашува корисникот за влез.
Генерално, може да се каже нешто како, да ми даде позитивен цел број,
и може да се стави дека внатрешноста на направите додека јамка.
Така што секогаш ќе ги прашате во најмалку еднаш за позитивен цел број.
Ако тие ви даде позитивен цел број, може да се пробие на јамка.
Може да се направи.
Булова израз во на направите додека да биде лажна.
>> А ти не ќе ги прашате повторно.
Ако се е негативен број, каде што тие типот некој збор или нешто што е
не се навистина корисни за вас, можете да го користите на
се додека јамка за да се врати и да се направи тоа повторно и повторно и повторно.
Ти дефинитивно ќе сакате да побарате нив да ви даде голем број еднаш,
но не знам колку пати После тоа, тие би можеле да бидат штетници.
И така не се прави, а тоа е голема употреба случај за да се прашува корисникот за влез.
И за петелки користат обично е случај кога
сакате да се повторува јамка дискретна број на пати,
покрај тоа што не би можело да знам колку пати
моментот на програма е составена.
>> Така на пример, можеби имаш програма каде што ќе го извести корисникот за голем број.
И тие да влезат 100.
А потоа вашата волја за телефонска линија во тој случај се кандидира 100 пати.
Или можеби ќе влезат 1000 во вашата програма
а потоа работи на јамка 1.000 пати.
Тоа е од одреден број на пати.
Тие не мора да знам што тој број,
е програма момент се состави.
Тоа не е како додека јамка каде што би можел да биде бесконечна.
Тоа е прилично голем број што едноставно не знам.
Сега иако сум наведени сите овие употреба случаи,
треба да знаете дека во прилично колку секоја околност,
можете да се размена на сите три од овие петелки.
Можете да го користите за телефонска линија, каде што во спротивно ќе се користи додека јамка.
Можете да го користите за телефонска линија каде што би го користите направите додека јамка и така натаму.
Тоа може да биде малку незгодно понекогаш, па генерално тоа е добра пракса
да се придржуваат до типичен случај употреба.
Користете направите додека јамка ако Сакавме нешто еднаш, најмалку.
Користете за телефонска линија, ако сакате да се направи нешто одреден број на пати.
Впрочем, тоа е причината зошто постојат три различни видови на петелки.
>> Така што тие може да се користи во вистински контекст.
Но, можете да се размена нив, ако сакате.
Ако се чувствуваат удобно со додека петелки и вие секогаш сакате да го користите додека петелки.
Тоа е нешто што можете да го направите, иако
може да биде малку синтаксички слабо, каде за телефонска линија
ќе биде многу повеќе јасна.
>> Моето име е Даг Лојд и ова е CS50.