Главная chevron_right Структура chevron_right Операторы сравнения chevron_right > (greater than)

> (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() и убедитесь, что их типы и значения соответствуют вашим предположениям.

Полезные материалы