Умовні оператори в C: If, Else, вкладені If з прикладом
⚡ Розумний підсумок
Умовні оператори в C керують потоком програми, виконуючи блоки коду лише тоді, коли перевірена умова має значення true, що дозволяє приймати рішення за допомогою конструкцій if, if-else, вкладених та else-if сходинок.
Що таке умовний оператор у C?
Умовні оператори в програмуванні на C використовуються для прийняття рішень на основі умов. Умовні оператори виконуються послідовно, коли навколо операторів немає умови. Якщо ви встановите певну умову для блоку операторів, потік виконання може змінитися на основі результату, оціненого умовою. Цей процес називається прийняттям рішень у мові «C».
на відміну від цикли в C що повторюють код, умовні оператори вибирають один шлях.
У програмуванні на C умовні оператори можливі за допомогою таких двох конструкцій:
- Якщо заява
- Оператор if-else
Це також називається розгалуженням, оскільки програма вирішує, який оператор виконати на основі результату оціненої умови.
Якщо заява
Це одне з потужних умовних тверджень. Оператор If відповідає за зміну потоку виконання програми. Оператор If завжди використовується з умовою. Умова спочатку оцінюється перед виконанням будь-якого оператора всередині тіла If. Синтаксис оператора if такий:
if (condition)
instruction;
Умова оцінюється як істинна або хибна. True завжди ненульове значення, а false це значення, яке містить нуль. Інструкції можуть бути окремою інструкцією або блоком коду, укладеним у фігурні дужки { }.
Наступна програма ілюструє використання конструкції if у програмуванні на C:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
вихід:
num1 is smaller than num2
Наведена вище програма ілюструє використання конструкції if для перевірки рівності двох чисел.
- У наведеній вище програмі ми ініціалізували дві змінні за допомогою num1, num2 зі значенням 1, 2 відповідно.
- Потім ми використали if із тестовим виразом, щоб перевірити, яке число найменше, а яке найбільше. Ми використали реляційний вираз у конструкції if. Оскільки значення num1 менше за num2, умова оцінюватиметься як істина.
- Таким чином, він надрукує оператор всередині блоку If. Після цього управління вийде за межі блоку і програма завершиться з успішним результатом.
Реляційний Operaторс
У мові C є шість реляційних операторів, які можна використовувати для формулювання логічного виразу для прийняття рішення та перевірки умов, що повертає значення true або false:
<— менше ніж<=— менше або дорівнює>— більше ніж>=— більше або дорівнює==— дорівнює!=— не дорівнює
Зауважте, що перевірка рівності (==) відрізняється від оператора присвоювання (=), оскільки це одна з найпоширеніших проблем, з якими стикається програміст, змішуючи їх.
Наприклад:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Вихід:
You succeed
Майте на увазі, що умова, яка має ненульове значення, вважається істинною.
Наприклад:
int present = 1; if (present) printf("There is someone present in the classroom \n");
вихід:
There is someone present in the classroom
Оператор If-Else
Оператор if-else є розширеною версією If. Загальна форма if-else така:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
У цьому типі конструкції, якщо значення тестового виразу дорівнює true, то буде виконано блок операторів true. Якщо значення тестового виразу дорівнює false, то буде виконано блок операторів false. У будь-якому випадку, після виконання, керування буде автоматично передано операторам, що знаходяться поза блоком If.
Наступні програми ілюструють використання конструкції if-else:
Ми ініціалізуємо змінну деяким значенням і напишемо програму, щоб визначити, менше чи більше десяти це значення.
Давайте розпочнемо.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
вихід:
The value is greater than 10
- Ми ініціалізували змінну зі значенням 19. Нам потрібно з'ясувати, чи є число більшим або меншим за 10, використовуючи програму «C». Для цього ми використали конструкцію if-else.
- Тут ми надали умову num<10, оскільки ми маємо порівняти наше значення з 10.
- Як ви можете бачити, перший блок завжди є істинним блоком, що означає, що якщо значення тестового виразу є істинним, то перший блок, який є If, буде виконано.
- Другий блок є блоком else. Цей блок містить оператори, які будуть виконані, якщо значення тестового виразу стане false. У нашій програмі значення num більше десяти, тому тестова умова стає хибною, і блок else виконується. Таким чином, наш вихід буде з блоку else, який має значення «Значення більше 10». Після if-else програма завершиться з успішним результатом.
У програмуванні на C ми можемо використовувати кілька конструкцій if-else одна в одній, які називаються вкладенням операторів if-else.
Умовні вирази
Інший спосіб виразити оператор if-else – це ввести оператор ?:. В умовному виразі оператор ?: має лише один оператор, пов'язаний з if та else.
Наприклад:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
вихід:
y =2
Вкладені оператори If-else
Коли потрібна серія рішень, використовується вкладене if-else. Вкладення означає використання однієї конструкції if-else в іншій.
Давайте напишемо програму, щоб проілюструвати використання вкладеного if-else.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
вихід:
The value is:1
Наведена вище програма перевіряє, чи число менше або більше за 10, і друкує результат за допомогою вкладеної конструкції if-else.
- По-перше, ми оголосили змінну num зі значенням 1. Потім ми використали конструкцію if-else.
- У зовнішньому операторі if-else задана умова перевіряє, чи число менше 10. Якщо умова істинна, тоді і тільки тоді виконається внутрішній блок. У цьому випадку умова істинна, отже, обробляється внутрішній блок.
- У внутрішньому блоці знову є умова, яка перевіряє, чи містить наша змінна значення 1. Коли умова істинна, оброблюється блок If, інакше оброблюється блок else. У цьому випадку умова істинна, отже, виконується блок If, і значення виводиться на екран виведення.
- Вищевказана програма виведе значення змінної та завершить роботу успішно.
Спробуйте змінити значення змінна подивіться, як поводиться програма.
ПРИМІТКА: У вкладених if-else конструкціях нам потрібно бути обережними з відступами, оскільки в цьому процесі задіяно кілька конструкцій if-else, тому стає важко розібратися в окремих конструкціях. Правильні відступи полегшують читання програми.
Вкладені оператори Else-if
Вкладений else-if використовується, коли потрібні багатошляхові рішення.
Загальний синтаксис того, як інакше-якщо сходи будуються в програмуванні на C, такий:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Цей тип структури відомий як сходи else-if. Цей ланцюг зазвичай виглядає як сходи, тому його також називають сходами else-if. Тестові вирази обчислюються зверху вниз. Щоразу, коли знайдено істинний тестовий вираз, виконується пов'язаний з ним оператор. Коли всі n тестових виразів стають хибними, виконується оператор else за замовчуванням.
Подивимося реальну роботу за допомогою програми.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
вихід:
First class
Наведена вище програма друкує оцінку відповідно до оцінок, отриманих під час тесту. Ми використали конструкцію драбини else-if у наведеній вище програмі.
- Ми ініціалізували змінну з позначками. У структурі драбини else-if ми надали різні умови.
- Значення зі змінних marks буде порівняно з першою умовою, оскільки воно є істинним, а пов’язане з ним твердження буде надруковано на екрані виводу.
- Якщо перша перевірочна умова виявляється хибною, то вона порівнюється з другою умовою.
- Цей процес триватиме доти, доки не будуть обчислені всі вирази, інакше керування вийде з ланцюжка операторів else-if, і буде виведено оператор за замовчуванням.
Спробуйте змінити значення та помітите зміну результату.






