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