[Powered by Google Translate] TOMMY MACWILLIAM: Разговор Ајде за петелки, еден од заедничките
програмски конструкции ќе видиме во текот CS50.
Ќе искористиме петелки кога сакаме да се изврши
задача повеќе од еднаш.
На пример, ние можеби ќе сакате да се печати "Здраво" 100 пати печати или
од сите букви од азбуката.
Во двата од овие случаи, имаме едно нешто што сакате да го направите
неколку пати, печати нешто надвор.
Сепак, она што ние го испечатите секој пат може да се разликуваат.
Значи можеме да направиме нешто малку различни на секој
повторување, или ја извршите преку, на јамка.
Ќе видиме три различни видови на јамки во C, додека
петелки, за петелки, и направи додека петелки.
Иако овие три вида на јамки имаат различни синтакса,
идеите зад нив се исти.
Ние ќе дефинираме некои блок од код во големи загради,
нарекува тело на јамка, дека ние сакаме да се изврши
одреден број на пати.
Со менување на вредностите на променливите се користат во телото, ние
да ја направиме нашата јамка се направи нешто различно секој пат кога се работи.
Со било јамка ние пишуваме, ние исто така ќе треба да одлучи кога на
јамка ќе престане да работи.
Ако ние не го сторат тоа, тогаш нашите сигурен компјутер ќе продолжи
да се кандидира тој јамка се додека не го убијат програма.
Во гребење, ние може да го користи повтори n пати
блокира за да се создаде еден циклус.
Сите парчиња во внатрешноста на блок што рече повтори 10
ќе биде извршена 10 пати.
И тогаш, ние ќе се движи кон парчиња после тоа јамка.
Па нашите гости состојба е едноставно, овој блок е
работи 10 пати.
Значи, да креираме во C. Во цел за нула да се обезбеди
дека парчиња во рамките на повтори блок се извршуваат
точно 10 пати, гребење треба да ги пратите на секоја
извршувањето на повтори блок.
Да ги пратите на тоа колку пати нашата јамка тело е
извршува, да се создаде променлива наречена i.
Ќе ми започнете на нула, бидејќи нашите јамка
не се извршува уште.
Ред
Сега ќе го користите додека клучни зборови за да започнете нашите јамка.
Сега ќе треба да дознаам кога нашите јамка ќе престане, но
ајде да ја напушти оваа сега за сега, а потоа се врати на неа.
Во ред.
Внатрешноста на нашата телефонска линија, ајде да печати порака надвор, како
"Здраво". Можеме да го користите printf функцијата за ова.
Во ред.
Па сега ние ќе ги сними дека повторување на јамка тело има
е извршена.
Ние можеме да го направите тоа со додавање на 1 до, или зголемување,, нашите counter
променлива, з.
Да го стори тоа, можеме да кажеме i е еднаква на i плус 1 или повеќе
едноставно, јас плус плус.
Велики.
Па сега можеме да видиме дека секој пат кога нашите јамка се кандидира, нашите
counter променлива оди по еден.
Па знаеме точно колку повторувања ние ја стартувате досега.
По една повторување на јамка, нашата вредност
на i ќе биде 1.
По две повторувања, јас ќе бидам 2.
И по 10 повторувања, јас ќе бидам 10.
Значи, ако сакаме да ја извршите оваа јамка точно 10 пати, а потоа
ова е кога сакаме да запре.
Затоа сакаме да ја извршите оваа јамка додека i е помал од 10, и
тоа е токму она што ќе пишувам, а јас
е помал од 10.
Оваа состојба изгледа како и условите што се користи во ако
друго блокови.
По телото на нашиот јамка е извршена, нашата програма
ќе скокне назад до состојба петелки.
Ако условот е исполнет, а потоа телото на
јамка ќе се кандидира повторно.
Доколку условот не е точно, тогаш нашата телефонска линија нема да биде
работат повеќе и ќе се движи кон следната линија код
под нашите јамка.
Во ред.
Па ајде да ги разгледаме во втор вид на
циклус, за телефонска линија.
До додека клучен збор, во загради, имавме една работа,
услов потребен за да биде вистина за
јамка тело да се кандидира.
Тоа значи дека моравме да се создаде нашиот counter променлива надвор
на јамка и не заборавајте да го зголемување во одреден момент
внатрешноста на јамка.
Насловот за нашите за телефонска линија, од друга страна, има три
делови, од кои секоја ќе бидат одделени со точка-запирка.
Во нашата прва третина, ние да се прогласиме за секој шалтер или helper
променливи ние би сакале да ја користат во нашиот јамка.
Во пракса, ова може да биде навистина корисно.
Ние навистина не треба таа променлива, јас, по нашето време
јамка е подигнат, па ние навистина не треба да се изјасни
надвор од јамка.
Втората третина ќе биде услов што мора да биде вистина
за телото да се изврши повторно, исто како
во нашата додека јамка.
Во нашата последна третина, ние може да работи изјава дека ќе биде
егзекутирани по секоја повторување на јамка, па ние немаме
да го изгради во јамка тело.
Значи, да се напише за јамка што се брои надолу 5-1.
Ќе започнеме со за клучниот збор.
Ние можеме да создадеме контра променлива Првиот, кој ние ќе
постави до 5 овој пат бидејќи ние сме броење надолу,
проследено со запирка.
Следна е нашата состојба, која ќе се врати на.
Трето, ние би сакале да декриминирачките нашите counter променлива по
секој повторување на јамка.
Така, наместо велејќи i плус плус, ние ќе кажам јас минус минус.
Во ред.
Затоа сакаме јамка тело да се кандидира додека јас се уште
поголем од 0.
Во телото на циклусот, да испечатите на вредноста на i.
Да го стори тоа, ние ќе го користите printf функцијата, со користење на% d
случаеви.
Запомнете, дека случаеви ќе биде заменет со
вредноста на i.
Конечно, да додадете изјава по нашите за телефонска линија.
Кога ќе ја извршите оваа линија, јас ќе започнете во 5,
па 5 ќе бидат испечатени.
Еднаш се добива на 0, продолжување состојба, i е
поголема од 0, повеќе нема да се одржи.
Значи, нашата телефонска линија ќе престане извршување, и ние ќе ја видите
изјава по јамка.
Па ајде да ја извршите оваа код.
Прво, ние ќе состави
countdown.c со направи одбројувањето.
Сега, ние може да работи овој код со. / Одбројувањето.
Во двата додека петелките и за петелки, нашата продолжување
состојба ќе бидат проверени пред телото
од циклусот се извршува.
Тоа значи дека, ако нашата состојба не е првично
точно, тогаш телото на нашиот јамка никогаш нема да се кандидира.
Така, тоа е понекогаш е корисно да се провери состојбата по
Телото на циклусот, а не пред тоа.
Значи, да напише циклус да го извести корисникот за голем број
до позитивен број се доставени.
Ако корисникот влезови негативен број, ќе сакате да ги прашате
за друг број.
Па ние ќе го сакате ова брзо да се биде внатре во
тело надвор од јамка.
Меѓутоа, кога јамка се кандидира за прв пат, на корисникот
не ни даде бројот сеуште.
Па тоа не дава никаква смисла да се провери дали тоа е позитивно.
Наместо тоа, ние ќе сакате да се провери бројот по телото на
јамка се работи.
Ние можеме да го направите ова со направи додека јамка.
Прво, ние ќе се создаде променлива, n, што ќе се одржи
на корисникот влез.
Сега ќе го користите Дали клучни зборови, проследено со кадрави загради дека
ќе започнете телото на нашиот јамка.
Во телото, може да го извести корисникот за број со
GetInt функција.
Сега, ние ќе сакаат телото на овој циклус да се изврши повторно, ако
корисникот внесе негативен број, па ние ќе каже додека n
е помал од 0.
Забележите запирка тука по време соопштението.
Па ајде да ја извршите оваа код.
Прво, ние ќе ги собере со направи позитивен.
Сега можеме да ја стартувате програмата со. / Позитивен.
Ако се даде оваа програма негативен број, како негативен
4, тогаш ќе биде побарано повторно за голем број од
состојбата на нашата направите додека јамка е вистина.
Откако ќе даде позитивен број, како 8, тогаш
состојбата на нашата направите додека јамка повеќе нема да биде точно.
Па јамка нема да се изврши повторно.
И тоа е тоа за три вида на јамки ние ќе ги користат во C.
Моето име е Томи, и ова е CS50.