Условни оператори в C: If, Else, Nested If с пример

⚡ Умно обобщение

Условните оператори в C контролират потока на програмата, като изпълняват блокове от код само когато тествано условие се оцени като истина, което позволява вземането на решения чрез if, if-else, вложени и else-if стълбични конструкции.

  • 🔤 Ако изявление: Изразът if изпълнява своя блок само когато условието е ненулева стойност true, докато нулата означава false.
  • 🔀 Ако-иначе: Конструкцията if-else добавя false клон, изпълнявайки един блок, когато условието е вярно, и друг, когато е невярно.
  • Релационни оператори: Шест оператора (<, <=, >, >=, ==, !=) изграждат булеви изрази, които всяко условие проверява.
  • 🪜 Иначе-ако стълба: Вложена else-if стълба проверява няколко израза отгоре надолу и изпълнява първия истински клон или else по подразбиране.
  • Троичен оператор: Условният израз ?: записва компактна if-else операция, която връща една от две стойности на един ред.
  • 🤖 AI помощ: GitHub Copilot изготвя и преглежда if-else логиката, маркира липсващи скоби и предлага по-чисти условия.

C Условен оператор: IF, IF Else и вложен IF Else

Какво е условен оператор в C?

Условните оператори в програмирането на C се използват за вземане на решения въз основа на условията. Условните оператори се изпълняват последователно, когато няма условие около операторите. Ако зададете някакво условие за блок от оператори, потокът на изпълнение може да се промени въз основа на резултата, оценен от условието. Този процес се нарича вземане на решения в „C“.

За разлика от цикли в C че повтарящият се код, условните оператори избират един път.

В "C" програмирането условните изрази са възможни с помощта на следните две конструкции:

  1. Ако изявление
  2. Израз „Ако-иначе“

Нарича се още разклоняване, тъй като програмата решава кой оператор да изпълни въз основа на резултата от оцененото условие.

Ако изявление

Това е едно от мощните условни твърдения. Инструкцията 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 за проверка на равенството на две числа.

Блок-схема на оператора IF в C

  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 в C

Операторът if-else е разширена версия на If. Общата форма на if-else е следната:

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

В този тип конструкция, ако стойността на test-expression е true, тогава ще се изпълни блокът от оператори true. Ако стойността на test-expression е 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 в C

  1. Инициализирахме променлива със стойност 19. Трябва да разберем дали числото е по-голямо или по-малко от 10 с помощта на програма 'C'. За да направим това, използвахме конструкцията if-else.
  2. Тук сме предоставили условие num<10, защото трябва да сравним нашата стойност с 10.
  3. Както можете да видите, първият блок винаги е верен блок, което означава, че ако стойността на тестовия израз е вярна, тогава първият блок, който е If, ще бъде изпълнен.
  4. Вторият блок е блок else. Този блок съдържа операторите, които ще бъдат изпълнени, ако стойността на тестовия израз стане невярна. В нашата програма стойността на 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 оператор в C

  1. Първо сме декларирали променлива num със стойност 1. След това сме използвали конструкция if-else.
  2. Във външния if-else, предоставеното условие проверява дали числото е по-малко от 10. Ако условието е вярно, тогава и само тогава ще се изпълни вътрешният блок. В този случай условието е вярно, следователно вътрешният блок се обработва.
  3. Във вътрешния блок отново имаме условие, което проверява дали нашата променлива съдържа стойността 1 или не. Когато условието е вярно, тогава ще се обработи блокът If, в противен случай ще се обработи блок else. В този случай условието е вярно, следователно блокът If се изпълнява и стойността се отпечатва на изходния екран.
  4. Горната програма ще отпечата стойността на променлива и ще приключи успешно.

Опитайте да промените стойността на променлив вижте как се държи програмата.

ЗАБЕЛЕЖКА: При вложени if-else конструкции трябва да внимаваме с отстъпите, защото в този процес участват множество if-else конструкции, така че е трудно да се разпознаят отделните конструкции. Правилното отстъпване улеснява четенето на програмата.

Вложени инструкции Else-if

Вложена Else-if стълба в C

Вложеното 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 ladder в горната програма.

  1. Инициализирахме променлива с маркировки. В структурата на стълбата else-if сме предоставили различни условия.
  2. Стойността от маркировките на променливите ще бъде сравнена с първото условие, тъй като е вярно, твърдението, свързано с него, ще бъде отпечатано на изходния екран.
  3. Ако първото тестово условие се окаже невярно, то се сравнява с второто условие.
  4. Този процес ще продължи, докато всички изрази бъдат оценени, в противен случай контролът ще излезе от стълбицата else-if и ще се отпечата операторът по подразбиране.

Опитайте да промените стойността и забележете промяната в изхода.

Въпроси и Отговори

Функцията if-else проверява всеки булев израз, включително проверки на диапазони и релации. превключвател…случай сравнява една променлива с фиксирани константни стойности и често се компилира в по-бърза таблица за преходи в много случаи.

Проблемът с висящата функция else е неяснотата относно това към кое if принадлежи даден else, когато if операторите са вложени без скоби. В C, else винаги се сдвоява с най-близкото несъответстващо if. Добавянето на фигурни скоби премахва объркването.

Да. Логическите оператори свързват условия: && изисква и двете страни да са верни, || изисква поне една страна да е истина, а ! обръща резултата. Например, ако (възраст > 18 && гражданин) тества две условия заедно в едно if.

Скобите са незадължителни, когато тялото е единичен оператор, така че C изпълнява само следващия ред. За два или повече оператора, скобите са необходими, за да ги групират. Използването на скоби винаги е безопасен навик, който предотвратява логически грешки.

Оценката на късо съединение спира веднага щом резултатът стане известен. С &&, невярна лява страна пропуска дясната страна. С ||, истинска лява страна пропуска дясната. Това избягва ненужна работа и опасни операции.

Да. Стълба тип „иначе-ако“ се оценява отгоре надолу и спира на първото истинско условие. Поставянето на широки условия преди тесни може да скрие тесните случаи, така че подредете тестовете от най-специфичните към най-общите.

Да. Асистентите за кодиране с изкуствен интелект изготвят условни блокове от коментар, конвертират дълги if-else вериги в по-чисти структури и сигнализират за вероятни грешки, като например използване на = вместо ==. Винаги тествайте генерираната логика, преди да ѝ се доверите.

Копилот на GitHub автоматично довършва if, else-if и вложени условия от вашите коментари или околния код. Предлага релационни и логически изрази и може да добавя липсващи скоби, въпреки че трябва да прегледате всяко предложение.

Обобщете тази публикация с: