Arduino:Справочник языка Arduino/Управляющие операторы/if

Материал из ВикиСправочника
Перейти к: навигация, поиск

Проверка/Оформление/Редактирование: Мякишев Е.А.


if (условие) и ==, !=, <, > (операторы сравнения)

if, используется в сочетании с операторами сравнения, проверяет, достигнута ли истинность условия, например, превышает ли входное значение заданное число. Формат оператора if следующий:

  1. if (someVariable > 50)
  2. {
  3. // выполнять действия
  4. }

Программа проверяет, значение someVariable больше чем 50 или нет. Если да, то выполняются определенные действия. Говоря иначе, если выражение в круглых скобках истинно, выполняются операторы внутри фигурных скобок. Если нет, программа пропускает этот код.

Скобки после оператора if могут быть опущены. Если так сделано, только следующая строка (обозначенная точкой с запятой) становится оператором, выполняемым в операторе if.

  1. if (x > 120) digitalWrite(LEDpin, HIGH);
  2. if (x > 120)
  3. digitalWrite(LEDpin, HIGH);
  4. if (x > 120){ digitalWrite(LEDpin, HIGH); }
  5. if (x > 120){
  6. digitalWrite(LEDpin1, HIGH);
  7. digitalWrite(LEDpin2, HIGH);
  8. }                                 // все правильно

Выражения, которые вычисляются внутри круглых скобок, могут состоять из одного или нескольких операторов.

Операторы сравнения:

x == y (x равно y)
x != y (x не равно y)
x < y (x меньше чем y) 
x > y (x больше чем y)
x <= y (x меньше чем или равно y)
x >= y (x больше чем или равно y)

Внимание!

Следите, чтобы случайно не использовать знак простого равенства.

Например:

if (x = 10)

Знак простого равенства – это оператор присваивания, и устанавливает значение х равное 10 (заносит значение 10 в переменную х). Вместо этого используйте знак двойного равенства.

Например:

if (x == 10)

который является оператором сравнения и проверяет, х равен 10 или нет. Последнее из двух выражений будет истинно, только если х равен 10, но предыдущее выражение всегда верно.

Это связано с тем, что С вычисляет выражение:

if (x=10)

следующим образом: значение 10 присваивается х (помним, что простой знак равенства – это оператор присваивания), таким образом, х теперь равен 10. Затем условный if вычисляет 10, которое уже равно ИСТИНА, так как любое число, неравное 0, равно ИСТИНА.

Поэтому

if (x=10)

будет всегда иметь логическое значение ИСТИНА, которое не является желательным результатом, когда используется оператор if. Вдобавок, переменной х будет присвоено значение 10, что также не является желаемым действием.

If также может быть частью разветвленной управляющей конструкции с использованием if...else

См.также

Внешние ссылки