Практическая задача: покупка йогурта
Представим, что вы пишете программу, которая считает, сколько денег останется после покупки:
Пример успешной покупки:
Но что, если денег не хватит? Программа всё равно вычтет цену и покажет отрицательное число! Это нелогично. Нам нужно принять решение: покупать или нет.
Условный оператор: базовая форма
В Idyllium для принятия решений используется условный оператор:
Конструкция проверяет, является ли условие истинным. Если да — выполняются команды внутри фигурных скобок.
Слово if по-английски означает «если». Например:
Перевод на русский: «Если переменная N больше, чем 50, то вывести "ЪУЪ!"».
Защита от отрицательного баланса
Если денег достаточно:
Если денег недостаточно — программа ничего не выведет, потому что условие ложно.
Несколько условий подряд
Программа может содержать сколько угодно условных операторов:
Пример с положительным числом:
Пример с нулём:
Полная форма условного оператора
Иногда нужно выполнять одно действие, если условие истинно, и другое — если ложно:
Условный оператор — это инструмент программирования, который позволяет при истинном условии выполнять одни действия, а при ложном — другие.
Если денег достаточно:
Если денег не хватает:
Что такое условие?
Условие — это выражение, которое является либо истинным, либо ложным.
Примеры:
10 > 5— истинное условие40 < 13— ложное условие
В программировании существуют специальные значения:
true — истина,
false — ложь.
Тип данных bool
В Idyllium есть специальный тип bool для хранения логических значений:
Операторы сравнения
Существует шесть операторов, которые порождают логические значения:
<— меньше>— больше==— равно>=— не меньше (больше или равно)<=— не больше (меньше или равно)!=— не равно
Любой из них можно использовать в условии:
Оператор присваивания vs оператор сравнения
Важное различие:
=— оператор присваивания: берёт значение справа и записывает его в переменную слева;==— оператор сравнения: проверяет, равны ли значения слева и справа, и возвращаетtrue, если они равны.
Пример ошибки:
Idyllium не разрешает использовать оператор присваивания внутри условия — это всегда ошибка компиляции. Так детская опечатка не превратится в серьёзный баг.