You are on page 1of 23

Оператори за разклонение

Условни оператори за
разклонение if и if – else
Оператор Синтаксис Действие
1.Изчислява се (условие);
Оператор за 2.Ако стойността е различна от 0
разклонение if (условие) оператор; (TRUE) се изпълнява оператор;
if 3.Ако е 0 (FALSE) се изпълнява
следващия оператор.
1.Изчислява се (условие);
Оператор за 2.Ако стойността е различна от 0
if (условие) оператор 1;
разклонение (TRUE) се изпълнява оператор1;
else оператор 2;
if-else 3.Ако е 0 (FALSE) се изпълнява
оператор2.

Условието може да бъде, както аритметичен, така и логически израз, допустим за


езика. В С/C++ всеки израз е верен, ако неговата стойност е различна от нула. Ако
е равен на нула, изразът е грешен.
Запис на структурата if – else
if (условие)
{
оператор;
...............
оператор;
}
else
{
оператор;
...............
оператор;
}
Пример 1:
Да се състави програма за намиране на по-голямото от две
въведени цели числа като се използва първия вариант на
оператора if:
int main()
{
int a, b, z;
cout << „Въведете a и b\n ";
cin >> a>> b;
z = a;
if (b > z) z = b;
cout << "По-голямата стойност е: " << z << "\n";
return 0;
}
Пример 2:
При използване на оператора за разклонение if-else:
int main()
{
int a, b, z;
cout << „Въведете a и b\n ";
cin >> a>> b;
if (a > b) z = a;
else z = b;
cout << “По-голямата стойност е: " << z << "\n";
system("PAUSE");
return 0;
}
Пример за вложени оператори за
разклонения
Операторите за разклонение допускат влагане.
Да се състави програма за намиране на по-голямото от три
цели числа като се използват вложени оператори за
разклонение:
int main()
{
int a, b,c, z;
cout << "Въведете a, b и c:\n ";
cin >> a>> b>> c;
if (a > b)
if (a > c) z = a; // вложен оператор if
else z = c;
else
if (b > c) z = b; // вложен оператор if
else z = c;
cout << “Най-голямата стойност е: " << z << "\n";
return 0;
}
Реализация на многозначно
разклонение с оператор if – else –if
if (израз1) оператор1;
else if (израз2) оператор2;
else if (израз3) оператор3;
else оператор4;

Конструкцията се използва при вземане на едно от много


решения. Изразите се изчисляват в описаната
последователност. Ако даден израз е истина, изпълнява се
свързаният с него оператор и с това завършва изпълнението
на конструкцията.
Всеки else е алтернатива на последния if.
Реализация на многозначно
разклонение с оператор switch – case
 switch се използва за избор на един от
няколко възможни алтернативни начина за
изпълнение на програмата. Дадена
стойност се сравнява последователно със
списък от целочислени или знакови
константи. Когато се намери съвпадение
се изпълнява поредицата от оператори,
асоциирана с това съвпадение.
Обща форма на оператора switch –
case
Оператор Синтаксис Действие

switch (израз)
{
1.Изчислява се израз;
case <константен израз 1> :
2.Сравнява се с константен израз
оператори; 1, 2, ....,n
break; 3.Ако съвпада с някой от тях се
case <константен израз 2> : изпълняват операторите след
Оператор за оператори; съответния етикет case;
многозначно
разклонение break; 4.Ако няма съвпадение се
……………….. изпълняват операторите след
case <константен израз n> : default (не е задължителен).
оператори; break прекъсва изпълнението и
предава управлението след
break;
затварящата скоба.
[default : оператори; break;]
}
Особености на switch – case
 Поредицата от оператори на default се
изпълнява, ако не се намери съвпадение. default
не е задължителна част от switch.
 Ако всички сравнения пропаднат и няма default,
тогава не се извършва никакво действие.
 Ако се намери съвпадение, операторите,
асоциирани с този case, се изпълняват до
срещане на break.
 Поредицата от оператори, асоциирани с всеки
case, не са блокове и не се ограждат с фигурни
скоби.
Сравнение между if и switch
 Конструкцията switch може да проверява
само за равенство, докато операторът за
сравнение на if може да бъде от всякакъв
тип.
 switch работи само с типовете int, bool и
char.
Пример 4:
 Да се въведе символ на аритметичен
оператор +, –, *, / и в зависимост от
въведения символ програмата да извършва
съответното аритметично действие между
променливите x и y. Резултатът да се
запише в променливата z.
Пример 4:
int main()
{
char znac;
float x, y, z;
z=0;
cout <<" Задайте оператор(+, -, * или /)\n";
cin >>znac;
cout <<" Въведете x :";
cin >>x;
cout <<" Въведете y:";
cin >>y;
switch (znac)
{
case '+': z = x + y; break;
case '-': z = x - y; break;
case '*': z = x * y; break;
case '/': z = x / y; break;
default: cout <<"Неправилен оператор\n"; break;
}
cout << "\n Резултатът е :"<< z<< "\n";
return 0;
}
Какъв ще е резултатът?
if(0)
cout << "0 is true";
else
cout << "0 is false";
cout << endl;

Отг. 0 is false
Какъв ще е резултатът?
if(-1)
cout << “-1 is true";
else
cout << “-1 is false";
cout << endl;

Отг. -1 is true
Какъв ще е резултатът?
int x = 2;
cout << "Start\n";
if (x <= 3)
if (x != 0)
cout << "Hello from the second if.\
n";
else
cout << "Hello from the else.\n";
cout << "End\n";
cout << "Start again\n";
Отг. Start
Hello from the second if
End
Какъв ще е резултатът?
int extra = 2;
if (extra < 0)
cout << "small";
else
if (extra == 0)
cout << "medium";
else
cout << "large";
Отг. large
Какъв ще е резултатът?
int first_choice = 1;
switch (first_choice + 1)
{
case 1: cout << "Torta\n"; break;
case 2:cout << "Pasta\n"; break;
case 3:cout << "Sladoled\n"; break;
case 4:cout << "Palachinka\n"; break;
default:cout << "Bez desert!\n";
}
Отг. Pasta
Какъв ще е резултатът?
int count=0, limit=10;
if(count == 0 && limit < 20)
cout<<"izhod 1";
else
cout<<"izhod 2";

Отг. Izhod 1
Какъв ще е резултатът?
int count=0, limit=10;
if(limit > 20 || count < 5)
cout<<"izhod 1";
else
cout<<"izhod 2";

Отг. Izhod 1
Какъв ще е резултатът?
int count=3, limit=10;
if ((limit/count) > 3 && limit < 20)
cout<<"izhod 1";
else
cout<<"izhod 2";

Отг. izhod 2
Какъв ще е резултатът?
int count=3, limit=10;
if (!(count == 12))
cout<<"izhod 1";
else
cout<<"izhod 2";
Отг. izhod 1
Какъв ще е резултатът?
Ако променливата a има стойност 8,
определете каква стойност ще има
променливата b след изпълнението на
оператора:
if (a > 4) b = 5;
else
if (a < 4) b = -5;
else
if (a == 8) b = 8;
else b = 3;

Отг. 5

You might also like