>> ДАГ Lloyd: Гаразд, давайте поговоримо про петель.
Так петлі круто тому що вони дозволяють вашу програму
для виконання рядків коду знову і знову і знову.
Неодноразово, без необхідності копіювати і вставте або іншим повторювати їх.
Є три основні види петель ви побачите.
Ви, ймовірно, є привід використовувати кожен, як ви прогрес через CS50.
Деякі з цих петель досить вам знайомі з нуля,
так знову, як ми зробили з умовних, ми помістимо їх поруч
якщо є аналогія, ми можемо малювати.
>> По-перше це назавжди від подряпин, що можна порівняти з в той час як (правда).
Це те, що ми називаємо нескінченний цикл.
Лінії коду між фігурними дужки, так само, як шматочки головоломки,
що підходить всередині C з вічно блокувати,
виконуватиме неодноразово зверху вниз, знову і знову і знову,
назавжди.
Зрештою, якщо ви Згадайте обговорення логічних виразів,
правда завжди вірно.
Так що, якщо ми робимо то так довго, як вірно
в true-- це здається трохи silly-- правда завжди вірно, так що завжди буду працювати.
Це буде працювати вічно і не у віки віків, поки ми
знайти спосіб вирватися з нього з заяву перерву, яка знову,
ми бачили якийсь час назад ми говорили про перехід.
>> Або інакше просто вбити нашого Програма, яка до речі,
якщо ви коли-небудь опинитеся в Ситуація з нескінченним циклом
і ви не знаєте, як зупинити Ваша програма працює с.
Просто натисніть контроль і C і що вб'є вашу програму для вас.
Але це, знову ж таки, називається нескінченний цикл.
Це цикл, який буде працювати вічно.
Тепер, у той час як петлі не завжди нескінченно, тому що також
ми можемо замінити логічне Вираз з чимось
трохи більш корисним, ніж просто так.
Так ось ще один приклад.
У той час як деякі Логічне Вираз, а потім фігурні дужки.
Це досить багато, аналогічно не повторювати доти, з нуля.
Хоча в секунду, я буду пояснити різницю.
>> Таким чином, в C, якщо логічний вираз всередині той час циклу
істинно, ліній Код між фігурними дужками
виконуватиме неодноразово знову і знову і не закінчена, поки логічне вираження
оцінюється як помилкове.
Так, наприклад, ви могли б є якийсь лічильник.
Так би мовити, вам на початку цей цикл сказати INT х дорівнює нулю.
У той час як х менше 100, зробити пару речі всередині, що фігурні дужки,
то в кінці вашого циклу, ви говорите, х плюс, плюс, ви збільшуючи х.
Зрештою х отримаєте 100 і ви
зупинитися, тому що в стані х менше 100
більше не буде вірно, як тільки х дорівнює 100.
100 становить не менше 100.
>> Тепер кілька смутно, поведінка подряпини блоку назад.
Так бути дуже обережні, якщо це Ваш перший набіг у використанні петлі.
В основному, повтор до блоку нуля
буде повторити те знову і знову і знову,
до вираження, логічне вираження в шестикутник вірно.
Так що будемо продовжувати робити це, поки це не правда.
Між тим, це час цикл продовжувати робити це до тих пір, поки брехня.
Так що вони дуже схожі, але Тобто те, що невелике розходження тільки
бути обережним, особливо, як ви зробите Ваш перший набіг від переходу
подряпати в с.
Наступний вид петлі насправді дуже схожі.
Це називається робити під час циклу.
Цей цикл буде виконувати всі лінії коду між фігурними дужками один раз,
а потім вона буде перевіряти логічне вираження.
Якщо логічний вираз істинно,
це буде повернутися назад і повторити що процес знову і знову
не раз, поки на логічне вираз брехня.
Так що це петля, на відміну від час циклу, є гарантує виконання, принаймні один раз.
Це може бути дуже корисно.
>> Нарешті, у нас є цикл.
Для петель є свого роду синтаксично непривабливими
і там багато всього відбувається тут, так що потерпіть зі мною
як ми намагаємося зламати і ці шматки один від одного.
Взагалі, використання справу А для вас петлі
хочу повторити щось певну кількість разів.
У цьому прикладі тут, У мене є блок повтору
з нуля, що аналогічно для циклу
в С, повторюючи щось у 10 разів.
І для петлі на Зліва, що
складається з чотирьох цикл, який буде робити те ж саме.
Це буде йти в 10 разів.
Підрахунок від нуля, ми збільшити кожному проході циклу.
І ми продовжуємо робити що поки я не менше, ніж 10.
>> Так що ж відбувається?
Там ціла багато коду там.
Давайте розбити його що відбувається крок
за кроком, як ми копаємо через цикл.
Перше, що сталося, змінна лічильника центр.
Всі ліворуч, що спочатку Крапка з комою в дужках
виконується.
У цьому випадку, ми кажучи INT я дорівнює 0.
Оголошення нову змінну з ім'ям I, що змінних типу ціле
і ми говоримо значення всередині що змінна буде дорівнює нулю.
>> Друга річ, що ми робимо, ми відразу ж оцінити
логічне вираження.
Логічний вираз в середній з двох крапкою з комою.
Я менше, ніж 10.
Це правда тут, вірно?
Ми щойно сказали, я дорівнює нулю, і так 0, становить менше 10,
і так що умова Правда, і тепер ми будемо
перейти до виконати тіло циклу.
Якби це було хибним.
Якщо, наприклад, я сказав, а не я дорівнює 0 там я сказав, що я дорівнює 15,
Int я дорівнює 15.
Ну 15 це не менше, ніж 10, таким чином, ми ніколи б не увійти в тіло циклу
бо логічне вираження було б оцінити як помилкове.
>> Після того як ми пройти через зверху до низу, ми стикаємося, що закриття фігурну дужку,
третій річ.
Мінлива лічильника збільшується або, скоріше, лінії
коду заяви після другий коми всередині з
для петель дужках виконується.
Таким чином, ми почнемо з кажучи INT я дорівнює 0.
Потім ми перевіряємо, чи є логічне вираження істинно.
0 менше, 10 так, що це правда.
Отже, ми збираємося, щоб продовжити в тіло циклу.
Речі станеться всередині циклу, і коли ми стикаємося з, що закриває фігурна
дужка, наступна річ, яку ми зробити, ми говоримо я плюс, плюс.
Я була нульовою тепер я одна.
Потім ми знову перевірте значення логічне вираження в середині.
Одним з них є менше 10.
Таким чином, ми пройти через це обробляти знову і знову.
Ми доберемося до закриття фігурна дужка знову.
Ми збільшуємо я від Від 1 до 2 і від 2 до 3.
І так далі, і так далі, і так далі, поки Зрештою я в значення стає 10.
Є 10 менше 10?
Немає.
Підрахунок від 0, ми пішли через 10 ітерацій циклу.
Ми повторювали 10 разів, тільки як ми це робили в подряпин блоку.
І так, що в основному те Процес чотири цикли.
>> Тепер забираючи фактичний код і покласти його
всього кілька основних загальних заяв.
Ось що відбувається.
Всі заяви в почати спочатку виконуються.
Ви можете мати більше одного.
Потім логічне вираження перевіряється.
Якщо вираз істинний, виконати організму рамкову один раз.
Якщо вираз брехня, ми зробили.
Ми не виконаєте тіло циклу взагалі.
Після того як ми стратили Тіло цикл раз,
Потім ми робимо те, що в частина приросту там.
Який, як правило, буде щось на зразок I плюс, плюс
або щось подібне, що змінює змінну лічильник.
Потім, після того як ми збільшуємо, ми перевірити вираз знову
і повторити ці кроки знову і знову і не закінчена, поки вираз
більше не вірно.
>> Отже, які варіанти використання для циклу?
Використовуйте використанні петлю, коли Ви хочете, щоб повторити цикл
невідома кількість часу, але це, можливо, не може працювати все.
Дійсно поширеним прикладом якийсь час циклу використовуються
це запустити потік управління для гри.
Ви не могли б знати, як довго Користувач буде грати,
але ви хочете зберегти робити те ж саме.
Оновлення позиції різні спрайт на дошці.
Ви хочете, щоб тримати речі рухається у всі часи,
але ви не знаєте, коли користувач збирається припинити грати
або коли вони збираються бігти з життя.
Таким чином, у той час як цикл дійсно добре щось на зразок цього.
Це хороший прецедент.
>> Для справ, а петлі, це досить схожі.
Ви хочете, щоб цикл повторити невідомий кількість разів, але принаймні один раз.
Ви можете використовувати це для гри теж, але дійсно загальний випадок використання
спонукає користувача для входу.
Як правило, ви могли б сказати щось як, дайте мені позитивне ціле число,
і ви, можливо, покласти, що всередині робити під час циклу.
Так що завжди буде просити їх хоча б один раз протягом цілого позитивного.
Якщо вони дають вам ціле позитивне число, Ви могли б вирватися з петлі.
Ви могли б зробити.
Логічний вираз в зроби, а може бути помилковим.
>> І ви не будете просити їх знову.
Якщо вони дають вам номер, де негативне вони типу якесь слово або що-небудь
насправді не корисно Ви, ви, можливо, використовувати
робити, а петля, щоб повернутися і зробити знову і знову, і знову.
Ви, безумовно, хочу запитати їх, щоб дати вам кілька разів,
але ви не знаєте, скільки разів Після цього вони можуть бути шкідники.
І так робити, поки це велике використання чохол для запиту користувача для введення.
І для петель використовувати Справа, як правило, коли
Ви хочете, щоб повторити цикл дискретний кількість разів,
якщо ви не могли б знаю, скільки разів
момент компіляції програми.
>> Так, наприклад, може бути, у вас є програма де ви підказати користувачу для ряду.
І вони входять 100.
І тоді ваш цикл буде в цьому випадку працювати в 100 разів.
Або, може бути, вони входять 1000 в програмі
а потім запустити петлю 1000 разів.
Це певну кількість разів.
Вони не обов'язково знаю, що це число
це програма момент складається.
Це не те, якийсь час цикл де він може бути нескінченним.
Це досить ряду що ви просто не знаю.
Тепер, хоча я викладені всі ці прецеденти,
Ви повинні знати, що в значній багато кожен обставина,
Ви можете поміняти всі три з цих петель.
Ви можете використовувати цикл, де ви в іншому випадку використовувати час циклу.
Ви можете використовувати цикл де це Ви б використовувати робити під час циклу і так далі.
Це може бути трохи складніше іноді, так взагалі це хороша практика
дотримуватися типового використання.
Використовуйте робити під час циклу, якщо вам хотів щось колись, принаймні.
Використовуйте для циклу, якщо ви хочете зробити щось певну кількість разів.
Зрештою, саме тому є три різні види петель.
>> Таким чином, вони можуть бути використані в правильному контексті.
Але ви можете поміняти їх, якщо хочете.
Якщо ви відчуваєте себе комфортно з петель в той час як і ви завжди хочете, щоб використовувати під час циклів.
Це те, що Ви можете зробити, хоча він
може бути трохи синтаксично складно, коли для контуру
було б набагато простіше.
>> Мене звуть Дуг Ллойд і це CS50.