Professional Documents
Culture Documents
Условни оператори за
разклонение 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.
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