Основни управляващи структури в С/C++. Условни оператори. Оператори за цикъл. Оператори break и continue. Оператор за разклонение.
1. Условен оператор
if (условие) израз1 else израз2 - израз1 се изпълнява ако условието е истина, в противен случай се изпълнява израз2
Пример:
if (x == 100) cout << "x e 100"; - опростен логически оператор ( изпуснат е else )
if ( x== 100)
cout << "x e 100"
else
cout << "x не е 100"
Ако изразът е съвкупност от няколко оператора се използва блок от инструкции, заградени във фигурни скоби:
if (a<0)
{
x=1;
y=0;
}
Използване на вложен оператор if - else:
if ( x > 0)
a = 1
else if ( x < 0 )
a = 2
else // това е случаят, при който x = 0
a = 3;
2. Оператор за цикъл
а) цикъл от типа while
while (условие) действие - повтаря действието, докато условието е вярно.
Пример:
// програма за обратно броене с използване на цикъл while
#include <iostream.h>
main()
{
int n;
cout << "Въведете начално число ";
cin >> n;
while (n>0)
{
cout << n << ", ";
--n;
}
return 0;
}
Анализ на програмата:
б) цикъл от типа do-while
do действие while (условие) - повтаря действието, докато условието е вярно.
Разликата между този цикъл и цикъл от тип while е само в реда на изчисляване на условието. В цикъл do-while то се изчислява след изпълнение на действието.
Пример - същата програма за обратно броене с използване на цикъл do-while
#include <iostream.h>
main()
{
int n;
cout << "Въведете начално число ";
cin >> n;
do
{
cout << n << ", ";
--n;
}
while (n != 0)
return 0;
}
в) цикъл от типа for
for (инициализация; условие; изменение) действие - повтаря действието, докато условието е вярно.
Пример: Да се изведат числата от 1 до 10.
#include <iostream.h>
main ()
{
for (int i=1; i<=10; i++) {
cout << i << "\n";
}
return 0;
}
Анализ на програмата:
Пример за по-сложен цикъл for:
for ( n=0, i=100; n!=i; n++, i-- )
{
// действие
}
3. Оператор break - прекъсва изпълнението на даден цикъл преди достигане на условието за край
Пример:
for ( n= 10; n>0; n-- )
{
cout << n << ", ";
if (n = = 3)
{
cout << " Броенето е прекратено!";
break; // Цикълът прекъсва
}
}
4. Оператор continue - пропуска остатъка от действията за текущата итерация на цикъла и преминава към следващата.
Пример:
for ( n= 10; n>0; n-- )
{
if (n = = 5) continue; // пропуска да изведе числото 5
cout << n << ", ";
}
5. Оператор goto - преминава към изпълнение на реда с указания етикет (безусловен преход)
етикет: ;
....
....
goto етикет;
Пример - да се изведат числата от 1 до 10:
int i = 1;
loop: ;
cout << n << "\n";
i--;
if ( i<11) goto loop;
Важно! Операторът goto може да се използва за организиране на цикли, но трябва да се внимава с проверката за край на цикъла - има опасност цикълът да стане безкраен.
6. Оператор exit - приключва изпълнението на програмата и връща код на грешка
exit (0) - приключва с код = 0 - няма грешка (нормално завършване)
exit (1) - приключва с код = 1 - програмата завършва с грешка
7. Оператор за избор switch - проверява няколко възможни стойности
switch (израз)
{
case константа1:
блок от инструкции;
break;
case константа2:
блок от инструкции;
break;
...
...
default:
блок от инструкции по подразбиране
}
Пример:
switch (x)
{
case 1:
cout << "x e 1";
break;
case 2:
cout << "x e 2";
break;
default:
cout << "x e неизвестно";
}
Пример:
switch (x)
{
case 1:
case 2:
case 3:
cout << "x e или 1, или 2, или 3";
break;
default:
cout << "x нe е нито 1, нито 2, нито 3";
}