Tip:
Highlight text to annotate it
X
[Powered by Google Translate] TOMMY MacWilliam: Давайте поговоримо про loops, одним з найбільш поширених
конструкції програмування ми побачимо всій CS50.
Ми будемо використовувати петлі, коли ми хочемо виконати
Завдання більш ніж один раз.
Наприклад, ми могли б надрукувати "Привіт" в 100 разів або друк
всі букви алфавіту.
В обох цих випадках, ми маємо одну річ, яку ми хочемо зробити
кілька разів, надрукувати що-небудь.
Однак те, що ми друкуємо кожен раз може мінятися.
Таким чином, ми можемо зробити щось трохи відрізняється по кожній
ітерації, або запустити до кінця, циклу.
Ми побачимо три різних типи циклів в C, в той час як
петлі, для петель, і зробити в той час як петлі.
Хоча ці три типи петлі мають різний синтаксис,
ідеї, що стоять за ними те ж саме.
Ми визначимо деякий блок коду у фігурні дужки,
називається тілом циклу, що ми хочемо бути виконаний
деяка кількість разів.
При зміні значень змінних, що використовуються в тілі, ми
може зробити наш цикл зробити щось інше кожен раз, коли він бігти.
При будь-якому циклі ми пишемо, ми також повинні вирішити, коли
цикл буде зупинений.
Якщо ми не зробимо цього, то наш вірний комп'ютер буде продовжувати
для виконання цього циклу, поки ми вбиваємо програму.
У Scratch, ми могли б використовувати повтор п раз
заблокувати для створення циклу.
Всі частини всередині блоку, сказав Повторити 10
буде працювати в 10 разів.
І потім, ми переходимо до частини після цього циклу.
Таким чином, наша зупинка стан було просто, цей блок був
виконати 10 разів.
Так що давайте відтворити це в C. Для того, щоб забезпечити подряпин
що шматки в рамках повторного блоку виконуються
рівно 10 разів, Scratch необхідно стежити за кожним
виконання повторного блоку.
Щоб відстежувати, скільки разів наші тіла циклу була
виконується, давайте створимо змінну я.
Ми почнемо я з нуля, так як наш цикл
не був запущений ще.
Добре
Тепер ми будемо використовувати в той час як ключове слово, щоб почати наш цикл.
Тепер ми повинні з'ясувати, коли наш цикл буде зупинити, але
Залишимо це на даний момент, а потім повернутися до нього.
Добре.
Усередині нашого циклу, давайте просто надрукувати повідомлення з, як
"Привіт". Ми можемо використовувати Е функція для цього.
Добре.
Так що тепер ми будемо записувати, що ітерації циклу тілі
був страчений.
Ми можемо зробити це шляхом додавання 1, або incrementing, наш лічильник
змінних, я.
Щоб зробити це, ми можемо сказати, що я одно я плюс 1 або більше
Просто, я плюс плюс.
Великий.
Отже, тепер ми можемо бачити, що кожен раз наш цикл виконується, наш
змінна лічильника збільшується на один.
Отже, ми знаємо точно, скільки ітерацій ми запускаємо досі.
Після однієї ітерації циклу, наші цінності
про я буду 1.
Після двох ітерацій, я буду 2.
А після 10 ітерацій, я буду 10.
Таким чином, якщо ми хочемо запустити цей цикл рівно 10 разів, потім
це коли ми хочемо зупинити.
Таким чином, ми хочемо запустити цей цикл, поки я менше, ніж 10, і
це точно, що ми будемо писати, а я
менше, ніж 10.
Ця умова виглядає так само, як і умови, які ми використовували в разі
іншим блокам.
Після того як тіло наше цикл був виконаний, наша програма
буде стрибати назад до стану петель.
Якщо умова істинна, то тіло
цикл буде запущений знову.
Якщо умова не вірно, то наш цикл не буде
більше бігти і перейти до наступного рядка коду
Під нашим циклу.
Добре.
Отже, давайте поглянемо на другого типу
петля, петля для.
Далі в той час як ключове слово в дужках, у нас була одна річ,
умова, що необхідно, щоб бути правдою для
Тіло циклу буде виконуватися.
Це означає, що ми повинні були створити нашу змінну лічильника за межі
циклу і пам'ятати, щоб збільшити її в деякій точці
Всередині циклу.
Тема для нашого циклу, з іншого боку, має три
частин, кожна з яких буде розділяються крапкою з комою.
У нашій першій третині, ми можемо оголосити будь зустрічне або допоміжні
змінних, які ми хотіли б використовувати в нашому циклі.
На практиці це може бути дуже корисним.
Ми дійсно не потрібна ця змінна, я, в той час як після нашої
цикл закінчився, так що ми дійсно не повинні оголосити його
поза циклом.
Друга третина буде умова, яка повинна виконуватися
для тіла, щоб бути виконана знову, як
У наш час циклу.
У нашій останній третині, ми можемо запустити заяву, яку буде
виконується після кожної ітерації циклу, тому в нас немає
вбудовувати його в тіло циклу.
Так що давайте писати цикл, який відраховує від 5 до 1.
Ми почнемо з для ключового слова.
Ми можемо створити змінну лічильника перший, який ми
встановлений в 5, так як на цей раз ми розраховуємо вниз,
слід крапка з комою.
Наступне наше умова, яку ми будемо повертатися.
По-третє, ми хотіли б зменшувати нашу змінну лічильника після
кожній ітерації циклу.
Таким чином, замість того, щоб говорити я плюс плюс, ми сказати, що я мінус мінус.
Добре.
Тому ми хочемо, тіло циклу для запуску в той час як я все ще
більше 0.
У тілі циклу, давайте роздрукувати значення я.
Для цього ми будемо використовувати Е функція, за допомогою% D
заповнювача.
Пам'ятайте, що заповнювач буде замінений
Значення я.
Нарешті, давайте додамо заяву після нашого циклу.
Коли ми запускаємо цей цикл, я буду починати на 5,
так що 5 буде надрукований.
Як тільки я добирається до 0, продовження стані, я це
більше 0, більше не будуть виконані.
Таким чином, наш цикл буде зупинити виконання, і ми побачимо,
заяву після циклу.
Так давайте запустимо цей код.
По-перше, ми будемо компілювати
countdown.c зробити зі зворотним відліком.
Тепер ми можемо запустити цей код с. / Відлік.
У той час як обидві петлі і петлі, наше продовження
умова буде перевірятися, перш ніж тіло
з циклу.
Це означає, що, якщо наші умови спочатку не
правда, то тіло нашого циклу ніколи не буде виконуватися.
Так що іноді корисно перевіряти стан після
Тіло циклу, а не перед ним.
Так що давайте написати цикл, щоб запитувати у користувача число
до позитивного числа в комплект поставки.
Якщо користувач вводить негативне число, ми хочемо, щоб запитати їх
на інший номер.
Так що нам потрібно це запрошення, щоб бути всередині
тіло з петлею.
Однак, коли цикл запускається в перший раз, користувач
не дав нам номер ще немає.
Так що це не має сенсу, щоб перевірити, якщо він позитивний.
Замість цього, ми хочемо, щоб перевірити номер після тіла
цикл виконується.
Ми можемо зробити це з робити під час циклу.
По-перше, ми створимо змінну п, який буде містити
користувачів вхід.
Тепер ми будемо використовувати на ключові слова, а потім фігурні дужки, що
буде почати тілі нашого циклу.
У тілі, ми можемо запропонувати користувачеві ряд з
GetInt функції.
Тепер ми хочемо тіло цього циклу виконати знову, якщо
користувач вводить негативне число, тому ми будемо говорити в той час як п
менше 0.
Зверніть увагу на крапку з комою тут після того, як при заяві.
Так давайте запустимо цей код.
По-перше, ми будемо збирати з цим зробити позитивним.
Тепер ми можемо запустити програму командою. / Позитивний.
Якщо ми дамо цю програму негативного числа, як і негативні
4, то буде запропоновано знову поруч з
стан нашої робити під час циклу було правдою.
Як тільки ми даємо позитивне число, як і 8, то
стан нашої робити під час циклу більше не буде правдою.
Таким чином, цикл не буде виконаний ще раз.
І ось саме для трьох типів петель ми будемо використовувати в C.
Мене звати Томмі, і це CS50.