C Умовний оператор: IF, IF Else і вкладений IF Else з прикладом

Що таке умовний оператор у C?

Умовні оператори в C програмування використовуються для прийняття рішень на основі умов. Умовні оператори виконуються послідовно, якщо навколо них немає умови. Якщо ви поставите певну умову для блоку операторів, потік виконання може змінитися на основі результату, оціненого умовою. Цей процес у «C» називається прийняттям рішень.

У програмуванні на C умовні оператори можливі за допомогою таких двох конструкцій:

1. Оператор If

2. Оператор 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 для перевірки рівності двох чисел.

Якщо Заява

  1. У наведеній вище програмі ми ініціалізували дві змінні за допомогою num1, num2 зі значенням 1, 2 відповідно.
  2. Потім ми використали if із тестовим виразом, щоб перевірити, яке число найменше, а яке найбільше. Ми використали реляційний вираз у конструкції if. Оскільки значення num1 менше за num2, умова оцінюватиметься як істина.
  3. Таким чином, він надрукує оператор всередині блоку 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-else is є розширеною версією If. Загальна форма if-else така:

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

У цьому типі конструкції, якщо значення тестового виразу є істинним, тоді буде виконано справжній блок операторів. Якщо значення тестового виразу 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

Твердження If-Else

  1. Ми ініціалізували змінну зі значенням 19. Нам потрібно з'ясувати, чи є число більшим або меншим за 10, використовуючи програму «C». Для цього ми використали конструкцію if-else.
  2. Тут ми надали умову num<10, оскільки ми маємо порівняти наше значення з 10.
  3. Як ви можете бачити, перший блок завжди є істинним блоком, що означає, що якщо значення тестового виразу є істинним, то перший блок, який є If, буде виконано.
  4. Другий блок є блоком 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.

Вкладені оператори If-else

  1. По-перше, ми оголосили змінну num зі значенням 1. Потім ми використали конструкцію if-else.
  2. У зовнішньому if-else надана умова перевіряє, чи число менше 10. Якщо умова істинна, тоді і тільки тоді буде виконано внутрішня петля. У цьому випадку умова виконується, тому обробляється внутрішній блок.
  3. У внутрішньому блоці ми знову маємо умову, яка перевіряє, чи містить наша змінна значення 1 чи ні. Якщо умова виконується, вона оброблятиме блок If, інакше оброблятиме блок else. У цьому випадку умова є істинною, отже блок If виконується, а значення друкується на екрані виводу.
  4. Наведена вище програма надрукує значення a змінна і вийти з успіхом.

Спробуйте змінити значення змінної, подивіться, як поводиться програма.

ПРИМІТКА: У вкладеному 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 тестових виразів стають false, тоді виконується оператор 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

  1. Ми ініціалізували змінну з позначками. У структурі драбини else-if ми надали різні умови.
  2. Значення зі змінних marks буде порівняно з першою умовою, оскільки воно є істинним, а пов’язане з ним твердження буде надруковано на екрані виводу.
  3. Якщо перша перевірочна умова виявляється хибною, то вона порівнюється з другою умовою.
  4. Цей процес триватиме, доки не буде обчислено вираз all, інакше керування вийде зі сходів else-if, і буде надруковано оператор за замовчуванням.

Спробуйте змінити значення та помітите зміну результату.

Підсумки

  • Оператори прийняття рішень або розгалуження використовуються для вибору одного шляху на основі результату обчисленого виразу.
  • Його також називають керуючими операторами, оскільки він контролює потік виконання програми.
  • 'C' надає конструкції if, if-else для операторів прийняття рішень.
  • Ми також можемо вкладати if-else один в інший, коли потрібно перевірити кілька шляхів.
  • Сходи else-if використовуються, коли ми повинні перевірити різні способи на основі результату виразу.