Циклы в языке C и структуры, синтаксис, примеры.
Сразу хочу предложить скачать два полезных документа:
- Хороший букварь по синтаксису языка Си
- Краткая шпаргалка по синтаксису языка Си для микроконтроллеров.
Ни один более менее приличный код для микроконтроллера или для любого другого устройства или приложения не может не использовать в своей структуре цикл.
Цикл применяется для осуществления перебора в указанном диапазоне значения переменной, или же цикл может указывать выполнение определенных действий пока существует переменная, или наоборот пока переменная не начнет существовать.
Цикл For.
В языке C как и в других Си подобных языках, таких как PHP циклы делятся на некоторые типы.
Самый простой цикл for:
for(i=A; i<B; i++) { ... действие при участии переменной "i" ... }
Таким образом
A - начальное значение которое будет инкрементировано(присвоено) переменной "i",
B - конечное значение которое будет инкрементировано переменной "i".
Данный пример показывает цикл от меньшего значения к большему, так же можно сделать уменьшение переменной "i" с каждым шагом, пример:
for(i=A; i<B; i--) { ... действие при участии переменной "i" ... }
И так итог:
1. Цикл for имеет четыре аргумента, три из которых указаны в скобках и четвертый указан в теле цикла.
2. Все три аргумента указанные в скобках являются необязательными, то есть каждый из них может в зависимости от задачи присутствовать или отсутствовать.
3. В первую очередь выполняется проверка условия, если условие выполняется, то цикл продвигается на один шаг вперед, если условие не выполняется цикл останавливается.
4. Изменение аргумента, который указан в скобках инициализации цикла выполняется только после выполнения тела цикла.
5. Отсутствие значения принимается как истинное.
Цикл While.
Цикл while выполняется пока один из аргументов существует или пока не достигается определенное значение арифметического сравнения между двумя переменными.
Пример:
#include <io.h>//Библиотека ввода/вывода int A=1, B=5;//Перечисляем переменные и присваиваем им значения int main(void)//основная программа { while (A!=B)//логическое отрицание (подр. см. Логические операторы) { ... действие ... } }
Цикл Do While.
В самом названии цикла понятно, что он будет выполнять определенные действия до определенного события.
Пример цикла do while:
do { PORTD = 0xFF;//Выдаем на порт D лог. 1-цу. i=i+1;//Прибавляем к переменной "1" единицу } while (i<5)//Цикл прекратиться при достижении переменной "1" значения "5"
Памятка:
1. Тело цикла выполняет как минимум 1 раз.
2. Проверка выполнения условия выполняется один раз, после выполнения тела цикла.
3. Если условие не выполняется то есть оно ложное, то тело цикла больше не выполняется.
4. В данном примере последним значением при котором будет выполнятся тело цикла является число "5".
Условный оператор If Else
Структура выглядит:
if(условие) Выполняем действие 1 else Выполняем действие 2
Так же возможна следующая структура, которая содержит в себе до "n" процедур сравнения:
if (условие 1) {действие 1}; else if (условие 2) {действие 2}; else if (условие 3) {действие 3}; ..... else if (условие n) {действие n};
Памятка:
1. Условный оператор If Else следует использовать, когда необходимо проверить выполнение нескольких условий, но выполнить всего одно действие.
2. Необходимо ставить скобки с обеих сторон условия.
Конструкция выбора Switch
Конструкция выбора Switch выполняет переключение на выполнение определенного действия при условии выполнения условия, закрепленного за конкретным условием.
Синтаксис следующий:
switch (выражение) { случай выполнения условия 1 случай выполнения условия 2 }
Пример кода:
switch (i/10) { case 0: PORTD = 0x10; // A break; case 1: PORTD = 0x20; // B break; case 2: PORTD = 0x30; // C break; default: PORTD = 0x40; // D break; }
Памятка:
1. При использовании конструкции выбора switch необходимо использовать только целочисленные значения.
2. Выражение после оператора case должно быть уникальным и не должно дублироваться после другого оператора case с другим номером.
3. Проверка выполнения условия выполняется сверху-вниз. От оператора case 1 до оператора case n.
4. Существует условие по умолчанию default, которое выполняется если ни одно из вышеперечисленных условий не было выполнено.
Операторы if и switch не
Операторы if и switch не являются циклами!!!
исправил
поправил все.