Вхід до системи

Відмінності між версіями «If»

Матеріал з мікроАмпер
(Створена сторінка: === Оператор If === '''if (умова) та ==, !=, <, > (оператори порівняння)''' '''if''', використовується ра...)
 
 
Рядок 1: Рядок 1:
=== Оператор If ===
+
==if (умова) and ==, !=, <, > (оператори порівняння)==
 
+
 
+
'''if (умова) та ==, !=, <, > (оператори порівняння)'''
+
 
+
'''if''', використовується разом із операторами порівняння, перевіряє, чи виконується істинність умови, наприклад, чи перевищує вхідне значення задане число. Формат оператора '''if''' виглядає так:
+
  
  
 +
Оператор '''if''', котрий зазвичай використовують у поєднанні з оператором порівняння, тестує, чи виконуються певні умови, наприклад, чи перевищує введене значення задане число. Формат тесту if виглядає так:
 +
<pre>
 
if (someVariable > 50)
 
if (someVariable > 50)
 
{
 
{
// виконувати дії
+
  // виконати дію
 
}
 
}
 +
</pre>
 +
Програма перевірятиме, чи якась змінна (someVariable) більша за 50. Якщо так, програма виконає певну дію. Іншими словами, якщо вираз у круглих дужках є істинним, програма виконає код у фігурних дужках. Якщо ні, програма пропустить код.
  
  
 +
Вираз-дію після виразу if не обов’язково брати у фігурні дужки. У такому разі, щоб програма правильно сприйняла вираз-дію, після нього треба поставити крапку з комою, як у прикладі нижче (другий вираз if (x > 120)).
 +
<pre>
 +
if (x > 120) digitalWrite(LEDpin, HIGH);
  
Програма перевіряє, чи значення someVariable більше, ніж 50, чи ні. Якщо так, то буде виконано певні дії. Іншими словами, якщо запис в круглих дужках є істинним, виконуються оператори всередині фігурних дужок. Якщо ні, програма пропускає цей код.
 
 
 
 
Дужки після оператора '''if''' можуть бути опущені. У такому разі тільки наступний рядок (позначений крапкою з комою) стає оператором, котрий виконується в операторі '''if'''.
 
 
 
 
if (x > 120) digitalWrite(LEDpin, HIGH);
 
 
 
if (x > 120)
 
if (x > 120)
digitalWrite(LEDpin, HIGH);
+
digitalWrite(LEDpin, HIGH);  
+
if (x > 120){ digitalWrite(LEDpin, HIGH); }
+
+
if (x > 120){
+
digitalWrite(LEDpin1, HIGH);
+
digitalWrite(LEDpin2, HIGH);
+
}                                // все правильно
+
 
+
 
+
 
+
Вирази, котрі вираховуються всередині круглих дужок, можуть складатися з одного чи декількох операторів.
+
 
+
 
+
 
+
''Оператори порівняння''
+
  
 +
if (x > 120){ digitalWrite(LEDpin, HIGH); }
  
 +
if (x > 120){
 +
  digitalWrite(LEDpin1, HIGH);
 +
  digitalWrite(LEDpin2, HIGH);
 +
}                                // усі варіанти правильні
 +
</pre>
 +
Для того, щоб обчислити вирази у круглих дужках, необхідні ''оператори порівняння'':
 +
<pre>
 
x == y (x дорівнює y)
 
x == y (x дорівнює y)
 +
x != y (x не дорівнює y)
 +
x <  y (x менше за y) 
 +
x >  y (x більше за y)
 +
x <= y (x менше або дорівнює y)
 +
x >= y (x більше або дорівнює y)
 +
</pre>
 +
'''Увага!''' Слідкуйте за тим, щоб випадково не використати одинарний знак «дорівнює» (наприклад,  if (x = 10) ): програма сприйме його як знак оператора присвоєння і присвоїть змінній х значення 10. Натомість використовуйте подвійний знак «дорівнює» (наприклад,  if (x == 10) ), котрий є оператором порівняння і перевіряє, дорівнює змінна х 10 чи ні. Вираз  if (x == 10) істинний лише у випадку, коли х дорівнює 10, тоді як вираз if (x = 10) завжди буде істинним.
  
x != y (x не дорівнює y)
+
Так є, оскільки С оцінює вираз if (x = 10) наступним чином: значення 10 присвоюється змінній х (одинарний знак «дорівнює» - оператор присвоєння), тож х тепер сприймається програмою як 10. Потім оператор if обчислює 10, котре завжди буде істинним, оскільки будь-яке число, що не дорівнює нулю, буде істинним. Відповідно, вираз  if (x = 10) завжди дорівнюватиме TRUE (буде істинним), що не є бажаним результатом під час використання оператора if. Так само змінну х буде задано як 10, що також не є бажаним.
 
+
Оператор if також може бути частиною розгалуженої структури керування з використанням конструкції [[if…else]].
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]].
+

Поточна версія на 07:25, 20 липня 2016

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

Оператор if, котрий зазвичай використовують у поєднанні з оператором порівняння, тестує, чи виконуються певні умови, наприклад, чи перевищує введене значення задане число. Формат тесту if виглядає так:

if (someVariable > 50)
{
  // виконати дію
}

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


Вираз-дію після виразу if не обов’язково брати у фігурні дужки. У такому разі, щоб програма правильно сприйняла вираз-дію, після нього треба поставити крапку з комою, як у прикладі нижче (другий вираз if (x > 120)).

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) ): програма сприйме його як знак оператора присвоєння і присвоїть змінній х значення 10. Натомість використовуйте подвійний знак «дорівнює» (наприклад, if (x == 10) ), котрий є оператором порівняння і перевіряє, дорівнює змінна х 10 чи ні. Вираз if (x == 10) істинний лише у випадку, коли х дорівнює 10, тоді як вираз if (x = 10) завжди буде істинним.

Так є, оскільки С оцінює вираз if (x = 10) наступним чином: значення 10 присвоюється змінній х (одинарний знак «дорівнює» - оператор присвоєння), тож х тепер сприймається програмою як 10. Потім оператор if обчислює 10, котре завжди буде істинним, оскільки будь-яке число, що не дорівнює нулю, буде істинним. Відповідно, вираз if (x = 10) завжди дорівнюватиме TRUE (буде істинним), що не є бажаним результатом під час використання оператора if. Так само змінну х буде задано як 10, що також не є бажаним. Оператор if також може бути частиною розгалуженої структури керування з використанням конструкції if…else.