AVR GCC
За да се повтори всяка последователност от действия многократно, се използват алгоритмични конструкции, които се наричат цикли. Последователността от действия в този случай се нарича тялото на цикъла.
Разграничават се следните видове цикли: цикъл "for" (цикъл с брояч) и цикъл "while" (цикъл с условие).
Цикъл "за" |
Цикълът "for" се използва, когато броят на повторенията е известен предварително.
Такъв цикъл има "брояч на повторения" или "променлива на цикъла", които трябва да бъдат декларирани предварително.
Тялото на цикъла се повтаря толкова пъти, колкото променливата на цикъла i придобива стойности от първоначалната си стойност, дадена от конструкцията за присвояване i = a, до крайната стойност, дадена от условието i. Промяната на променливата i се дава чрез конструкция за присвояване във формата i = i + c (може също да се използва i++ увеличение или i-- намаление). Когато i = b, цикълът завършва и операторът, следващ затварящата скоба на цикъла, се изпълнява.
На първата стъпка от цикъла променливата i ще бъде равна на 1, преди втората стъпка тя ще бъде увеличена с 1 в резултат на намаляването ( i++) и ще стане равна на 2. На третата стъпка от цикъла ще взема стойността 3 . И така докато на петата стъпка от цикъла стане равно на 5 . В резултат на следващата i++ операция, променливата на цикъла ще приеме стойност 6, но условието i вече няма да е вярно и цикълът ще приключи. Така тялото на цикъла ще бъде изпълнено 5 пъти.
Възможно е да декларирате променлива на цикъл директно в нейното съдържание:
Но на първия етап от изучаването на езика C е по-добре променливите да се декларират отделно.
Помислете за пример за мигане на светодиод 10 пъти с помощта на цикъл "for".
Снимка 1 |
Цикълът while |
Цикълът while, известен още като условен цикъл, се повтаря, докато условието на цикъла е вярно.
Условните цикли се използват най-често, когато броят на повторенията не е известен предварително и цикълът трябва да работи, докато условието е изпълнено.
За да приключи цикълът, трябва да се промени някаква променлива в тялото на цикъла, от която зависи истинността на условието за повторение.
В този пример тялото на цикъла ще се повтори 50 пъти, стига променливата x да е по-голяма от нула. При всяка итерация на цикъла x ще намалява с 1. Когато x стане нула, цикълът ще спре.
изявление за прекъсване |
Командата break ви позволява да прекъснете изпълнението на тялото на цикъла (при допълнителни условия).
За да използвате този оператор, трябва само да вмъкнете реда
в това място на цикъла, където е необходимо да се организира неговото прекъсване.
Безкрайни цикли |
Можете да организирате безкраен цикъл както с помощта на цикъла "for", така и с помощта на цикъла "while"
Единственият начин да излезете от такива цикли е да направите прекъсване (при някакво условие) в тялото на цикъла.
Вложени цикли |
Един цикъл на повторение може да бъде вътре в друг цикъл. Когато използвате вложени цикли, трябва да следвате просто правило: един цикъл в друг трябва да бъде същият като една вложена кукла в друга кукла.
Помислете за пример на два вложени цикъла "for". Тялото на вложения цикъл ще се повтори общо 200 пъти.
Оформяне на забавяне |
С помощта на цикли е възможно да се образуват времезакъснения с голяма продължителност.Помислете за пример за многократно повторение на функцията _delay_ms().
Този пример прилага забавяне от 10 минути.