В этой статье я расскажу об операторе if, его применениях и напишем небольшой код с его применением.
Определение
If - дословно с английского переводится как если, в программировании - это ключевое слово, которое используется для создания условных выражений. Оно позволяет выполнить определенный блок кода, только если условие будет являться истиной.
Где можно использовать оператор if
Условные инструкции: Оператор if часто используется для создания условных конструкций, позволяющих программе выполнять различные действия в зависимости от значения переменных или условий.
Обработка ошибок: Оператор if часто применяется для обработки ошибок и исключений. Если в коде возникает ошибка, if может быть использован для перехвата и обработки ошибки.
Ввод и вывод данных: Оператор if может быть использован для проверки ввода данных от пользователя или из других источников. Например, для проверки корректности введенных пользователем данных.
Это лишь несколько примеров, где оператор if может быть применен в языке C++. Его гибкость и способность принимать решения на основе условий делают его важным инструментом для программистов в различных областях разработки.
Код
Перейдем к написанию кода, но сначала нужно решить что наш код будет делать. В данной статье мы подключим кнопку на PB0, при нажатии которой, будет будет приходить 0 на PB0 и мигать светодиод, подключенный на PD0.
Ещё для нашего сегодняшнего кода нужен будет оператор PIN. Его функция считывать состояние пина микроконтроллера, если они настроены на вход. Он делится еще на 3 оператора: PINB, PINC, PIND - непосредственно каждый для своего порта.
Для начала мы создаем новый проект и пишем скелет нашей программе, который был описан в прошлой статье (https://dzen.ru/a/ZRau4cD0ijo4rJvW?share_to=link). Настраиваем PORTC6 на вход и PORTD0 на выход (не забываем про ; )
DDRB = 0b00000000;
PORTB = 0b00000001; //настраивая на порте 1 при работе на вход мы включаем подтягивающее сопротивление, т.е. по умолчанию там будет 1.
DDRD = 0b00000001;
PORTD = 0b00000000;
В основном теле программы мы пишем конструкцию if и в скобках пишем следующее условие:
!(PINB & (1 << PB0))
Запись (PINB & (1 << PB0)) означает, что если на PB0 единица, то выполнить следующий код. Но знак ! перед этим условием показывает полную инверсию написанного. Т.е. если на PB0 ноль, то выполнить следующий код.
Этот следующий код мы пишем в фигурных скобках после условия.
PORTD = 0b00000001;
_delay_ms(500);
PORTD = 0b00000000;
_delay_ms(500);
Так будет выглядеть наш код в скобках. Теперь программу можно скомпилировать (нажав кнопку F7) и загрузить в микроконтроллер или Proteus. При нажатии и удержании кнопки мы увидим как будет мигать светодиод с периодичностью в 0.5 секунды.
Оператор else
Tеперь дополним нашу программу оператор else.
Else - это дополнение к оператору if, в него записывается код, который будет срабатывать при несовпадении условия в if.
Выглядит это так
Сделаем так, что если кнопка не не жата, то светодиод будет все время гореть:
PORTD = 0b00000001;
компилируем и загружаем код. Теперь по умолчанию у нас горит светодиод, а при удержании кнопки будет мигать светодиод с периодичностью в 0.5 секунды.
Весь код
Схема проекта
Ссылки
Проект - https://disk.yandex.com.am/d/edjjk1U7Dqq9zQ
"Первая программа" - https://dzen.ru/a/ZRau4cD0ijo4rJvW?share_to=link
"Начало или почему C++" - https://dzen.ru/a/ZRWri8Qs0W_q-6Ue?share_to=link