> (greater than)
Оператор > сравнивает два значения и возвращает true, если левый операнд больше правого — используется в if, while и for.
Полная статья
Описание
Оператор > (больше) сравнивает два значения и возвращает true, если левый операнд превышает правый. Это один из базовых операторов сравнения, который чаще всего встречается в условиях if, циклах while и for.
Технически Arduino позволяет сравнивать переменные разных типов, однако на практике это нередко приводит к неожиданным результатам. Например, сравнение знакового int с беззнаковым byte может дать неверный результат из-за неявного приведения типов. Чтобы избежать таких проблем, сравнивайте переменные одного и того же типа — и следите за тем, знаковый он или беззнаковый.
Синтаксис
x > y; // is true if x is bigger than y and it is false if x is equal or smaller than y
Параметры
x: переменная в левой части оператора. Допустимые типы данных:int,float,double,byte,short,long.y: переменная или константа в правой части оператора. Допустимые типы данных:int,float,double,byte,short,long.
Пример кода
if (x > y) { // проверяет, что x больше y
// выполняется только если условие истинно
}
Где применяется
- Проверка порогового значения: включить реле, если температура превысила заданный уровень.
- Ограничение счётчика: сбросить переменную, если она вышла за допустимый диапазон.
- Управление циклом: продолжать опрос датчика, пока показание больше нуля.
- Сравнение показаний двух датчиков: определить, какой из них зафиксировал большее значение.
Практические замечания
- Положительные числа всегда больше отрицательных — это кажется очевидным, но важно помнить при работе со знаковыми типами вроде
intиlong. - Сравнение
floatиdoubleможет давать неточные результаты из-за особенностей представления чисел с плавающей точкой. Если нужно проверить «больше с запасом», используйте небольшой допуск вместо точного сравнения. - Смешивание знаковых и беззнаковых типов (например,
intиbyte) при сравнении — частый источник трудноуловимых ошибок. Компилятор может неявно привести один тип к другому, и результат окажется неожиданным. - Оператор
>возвращает значение типаbool:trueилиfalse. Его можно использовать напрямую в условии или присвоить булевой переменной. - Если сравнение ведёт себя не так, как ожидается, выведите оба операнда через
Serial.print()и убедитесь, что их типы и значения соответствуют вашим предположениям.