>> Дъг LLOYD: Добре де, нека да говорим за вериги.
Така вериги са вид готини защото те позволяват програма
да изпълни реда код отново и отново и отново.
Многократно, без да се налага да копирате и поставете или по друг начин да ги повтарям.
Има три основни видове линии, които ще видите.
Вероятно ще има повод да се използва всяка една, колкото напредък чрез CS50.
Някои от тези вериги са доста запознат с теб от самото начало,
така отново, както направихме с условни, ние ще ги изведе до рамо до рамо
ако има една аналогия можем да направим.
>> На първо място е завинаги от Scratch, която се сравнява с докато (вярно).
Това е, което ние наричаме един безкраен цикъл.
Линиите на код между къдрава тиранти, който много прилича парчетата от пъзела
че е удобно вътре в C на вечно блок,
ще се изпълни на няколко пъти от горе до долу, отново и отново, и отново,
завинаги.
В крайна сметка, ако си спомняте нашата обсъждане на булеви изрази,
Вярно е, винаги е вярно.
Така че, ако правим нещо толкова дълго, колкото е вярно
е то true-- изглежда малко silly-- вярно винаги е вярно, така че винаги ще тече.
Тя ще работи за вечни вечни векове, докато ние
намери начин да се измъкне от нея с изявление почивка, която отново,
видяхме преди малко ние Говорехме за преминаване.
>> Или по друг начин просто убива ни програма, която между другото,
ако някога се окажете в ситуация с един безкраен цикъл
и вие не знаете как да се спре вашата програма от надпреварата.
Просто натиснете контрол и C и че ще убие вашата програма за вас.
Но това, отново, е нарича безкраен цикъл.
Това е линия, която ще продължи вечно.
Сега, докато вериги не са винаги безкрайно, защото също
ние може да замени Boolean изразяване с нещо
малко по-полезни, отколкото просто вярно.
Така че тук е друг пример.
Макар и някои булева изразяване и тогава фигурни скоби.
Това е доста много, аналогичен да се повтаря, докато, от нулата.
Въпреки че в секунда, аз ще обясни разликата.
>> Така че в C, ако Булев израз вътрешността на цикъла, докато
изчисли на истинските, линиите на Код между фигурните скоби
ще се изпълни на няколко пъти отново и отново и отново, докато Булев израз
стойност лъжа.
Така например, може да се имат някакъв брояч.
Значи вие казвате, в началото на този цикъл се каже инт х е равно на нула.
Докато х е по-малко от 100, направете няколко неща вътре, че фигурни скоби,
След това в края на своя цикъл, което казвате х плюс плюс, можете да започнете увеличаване х.
В крайна сметка х ще получат до 100 и щете
спре, защото условието X е по-малко от 100
вече няма да бъде вярно, тъй като Веднага след като х е равно на 100.
100 е не по-малко от 100.
>> Сега малко объркващо, поведението от нулата блок е с обратен знак.
Така че бъдете внимателни, ако наистина това е първата си набег в използване на електрически вериги.
По принцип, повторението до блок в Scratch
Ще повторя нещо отново и отново и отново,
докато експресията, булевият изразяване в шестоъгълника е вярно.
Така че ще продължаваш да правиш него, докато това е вярно.
В същото време, на линия, докато няма продължи да го направя, докато тя е фалшива.
Така че те са доста сходни, но там е, че малко по-просто разграничение
да бъдат внимателни на особено като направите първата си набег от прехода
да Scratch в гр.
Следващият вид цикъл е всъщност е доста сходен.
Тя се нарича правя, докато линия.
Тази линия ще изпълни всички линии на код между фигурните скоби веднъж,
и след това ще се провери Булева израз.
Ако Булев израз оценява да е вярно,
тя ще се върна и да се повтаря този процес отново и отново
и отново, докато на Boolean изразяване стойност лъжа.
Така че този цикъл, за разлика от една линия, докато, е гарантирано да работи най-малко един път.
Това може да бъде доста полезен.
>> На последно място, ние имаме за контур.
За вериги са вид синтактично непривлекателна
и има много неща се случват тук, за да носят с мен
както ние се опитваме и да чупя тези парчета от друг.
Като цяло, случаите на употреба на линия за вас е
Искам да повторя нещо, а определен брой пъти.
В този пример тук, Имам повторете блок
от нулата, което е аналогичен на линия за
в С, нещо повтаря 10 пъти.
И за контур на отляво там, което
е четири линия, която ще направи същото нещо.
Това ще върви 10 пъти.
Преброяване от нула, ние нарастване всяко преминаване на цикъла.
И ние продължаваме да правим това докато аз е по-малко от 10.
>> Така че какво ще се случи?
Има един куп код там.
Нека да го съборят, за да какво се случва стъпка
по стъпка, тъй като ние се копае чрез за цикъл.
Първото нещо, което се случи, е контра променливата е център.
Всичко отляво на тази първа точка и запетая в скобите
се изпълнява.
В този случай, ние сме казвайки инт аз равна на 0.
Обявяването на нова променлива, наречена аз, че променливи е цяло число тип
и ние да кажеш, стойността вътре тази променлива ще бъде нула.
>> Второто нещо, което правим, е ние след това веднага се оцени
Булева израз.
Булев израз е в средно от двете запетаи.
I е по-малко от 10.
Това е вярно тук, нали?
Ние току-що каза аз се равнява на нула, така и 0 е по-малко от 10,
и така, че състояние е вярно и ние ще се сега
да пристъпи към изпълнение на тялото на цикъла.
Ако тя е невярна.
Ако, например, аз казах, вместо аз се равнява на 0 там казах аз се равнява на 15,
INT аз се равнява на 15.
Е 15 е не по-малко от 10, така че ние никога няма да влезе в тялото на цикъла
защото Булев израз ще има оценка, че е невярна.
>> След като преминем от горе до долу, ние се сблъскваме, че затварящата фигурна скоба,
трето нещо се случва.
Променливата за брояч е увеличава, или по-скоро, линиите
на код на изявление след втора точка и запетая вътрешността на
за контури скоби се изпълнява.
Така че ние започваме от казвайки инт аз равна на 0.
След това ние проверяваме дали или не Булева изразът е верен.
0 е по-малко от 10, така че това е вярно.
Така че ние ще се процедира в тялото на цикъла.
Нещата ще се случват вътре в контура, и когато се сблъскваме, че затварящата фигурна
презрамки, следващото нещо, което ние направите, е да кажем, аз плюс, плюс.
Бях нула сега аз е един.
След това, ние отново се провери стойността на Булева израз в центъра.
Един от тях е по-малко от 10.
Така че ние ще мине през това обработим отново и отново.
Ние ще стигнем до затварянето фигурна скоба отново.
Ще увеличите аз от 1-2 и 2-3.
И така нататък, и така нататък и така нататък, докато в крайна сметка аз му стойност е 10.
Е 10 по-малко от 10?
Не.
Преброяване от 0, ние сме отишли през 10 повторения на линия.
Ние сме се повтаря 10 пъти, просто както направихме в Scratch блок.
И така, това е в основата на Метод за четиригодишен цикъл.
>> Сега като се махне действителния код и да я постави
само някои основни общи твърдения.
Ето какво се случва.
Всички твърдения в започнете, се изпълняват на първо място.
Може да имате повече от един.
След това, Булева израз се проверява.
Ако изразът е вярно, изпълни тялото на цикъла един път.
Ако изразът оценява да невярна, сме готови.
Ние не изпълни тялото на цикъла на всички.
След сме изпълнил тялото на цикъла едно време,
След това ние правим това, което е в на нарастване част там.
Което обикновено ще бъде нещо като аз плюс, плюс
или нещо такова, че модифицира насрещно променлива.
После, след като ние увеличаваме, ние проверите изразът отново
и повторете тези стъпки отново и отново и отново, докато изразът е
вече не е вярно.
>> Така че какви са случаите на употреба за една линия?
Използвайте използвате една линия, докато при искате една линия да се повтаря
неизвестен брой пъти, но тя вероятно не може да се кандидатира всички.
Един наистина Типичен пример за Известно време примка се използва
е да стартирате контрол поток за една игра.
Може да не знам колко дълго потребителя ще се играе,
но искате да запазите прави същото нещо.
Актуализиране на позициите на различни спрайтове на дъската.
Вие искате да запазите нещата движещи се по всяко време,
но ти не знаеш, когато потребител ще спра да играя
или когато те ще да свършат на живота.
Така че една линия, докато е наистина добро за нещо подобно.
Това е добро дело употреба.
>> За да не се прави линия, докато, това е доста сходен.
Искаш ли една линия да се повтаря неизвестно брой пъти, но най-малко веднъж.
Може да използвате тази за игра също, но наистина обща случай ползване
е подканване на потребителя за вход.
Като цяло, може да се каже нещо, харесват, дай ми е положително число,
и може да се изведе, че вътрешността на задачи, докато линия.
Така че винаги ще ги питам най- поне веднъж за положително цяло число.
Ако те ви даде положително число, може да се измъкне от примката.
Може да се направи.
The Булев израз в на направи, докато може да се окаже невярна.
>> И вие няма да ги питам отново.
Ако те ви даде отрицателно число, където те написали някои дума или нещо, което е
Не наистина полезно да вие, може да използвате
линия, докато се да се върна и да направя отново и отново и отново.
Ти определено искам да попитам тях да ви дам няколко наведнъж,
но ти не знаеш колко пъти След това те могат да бъдат вредители.
И така, да не се прави, докато това е чудесен ползване калъф за подканване на потребителя за вход.
И за вериги използват случай обикновено е, когато
искате да повторите една линия дискретен брой пъти,
макар и да не вали знам колко пъти
момента програмата се компилира.
>> Така например, може би имате програма когато ви пита потребителя за редица.
И те влизат 100.
И тогава си за линия ще в този случай тече 100 пъти.
Или може би те влизат 1000 във вашата програма
и след това стартирайте цикъла 1000 пъти.
Това е определен брой пъти.
Те не задължително знаете какво този брой
е програмата момент се компилира.
Това не е като една линия, докато където тя може да бъде безкраен.
Това е по-скоро номер че просто не знам.
Сега, въпреки че аз съм очертани всички тези случаи употреба,
вие трябва да знаете, че в доста много по всяко обстоятелство,
можете да разменят всички три от тези линии.
Можете да използвате за контур, където можете в противен случай ще се използва по време на цикъл.
Можете да използвате за контур, където и би трябвало да използвате не се прави по време на цикъл и така нататък.
Тя може да бъде малко трудно понякога, така по принцип това е добра практика
да се придържат към един типичен случай употреба.
Използвайте направи линия, докато ако Исках нещо веднъж, най-малко.
Използвайте за контур, ако искате да направите, нещо, на определен брой пъти.
В края на краищата, това е защо има три различни вериги.
>> Така че те могат да бъдат използвани в правилния контекст.
Но може да се разменят ги, ако искате.
Ако се чувствате комфортно с вериги, докато и вие винаги искате да използвате по време на цикли.
Това е нещо, което можете да направите, въпреки че
Може да е малко синтактично сложно, когато за контур
Би било много по-лесно.
>> Моето име е Дъг Lloyd и това е CS50.