Оператори порівняння та if

Документація

if (умова) та ==, !=, <, > (оператори порівняння)


Функція if, яка використовується в поєднанні з операторами порівняння, перевіряє, чи було досягнуто певну умову, наприклад, чи введені дані більші за певне число. Формат застосування функції if такий:

if (someVariable > 50)
{
  // зробіть щось тут
}


Програма перевіряє, чи деяка змінна більша за 50. Якщо так, програма виконає певну дію. Іншими словами, якщо твердження в дужках правдиве, оператори всередині фігурних дужок запускаються. Якщо ні, програма пропускає цю частину коду.

Фігурні дужки після оператора if також можуть бути пропущені. Якщо це так, наступний рядок (визначається крапкою з комою) стає єдиним умовним оператором.

if (x > 120) digitalWrite(LEDpin, HIGH); 

if (x > 120)
digitalWrite(LEDpin, HIGH); 

if (x > 120){ digitalWrite(LEDpin, HIGH); } 

if (x > 120){ 
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH); 
}                                 // всі варіанти правильні


Поміщені у дужки вирази вимагають використання одного чи більше операторів:

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

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)). Одиничний знак рівності — це оператор присвоєння, тому присвоює x значення 10. Натомість використовуйте подвійний знак рівності, який є оператором порівняння. Він перевіряє, чи х дорівнює 10. Останнє твердження правдиве лише якщо х рівний 10, а от попередній оператор завжди буде правдивим.

Це тому, що C обчислює вираз if (x=10) наступним чином: 10 присвоюється х (запам’ятайте, що одиничний знак рівності — це оператор присвоєння), тому тепер х містить 10. Тоді функція if оцінює 10, яке завжди буде істинним (TRUE), адже будь-яке ненульове число є істинним. Отже, вираз if (x = 10) завжди буде істинним, що не є бажаним результатом при використанні оператора if. Крім того, змінній x буде присвоєно значення 10, що також не є бажаною дією.

if також може бути частиною розгалуженої керувальної структури з використанням конструкції if...else.

Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.