Основни управляващи структури в С/C++. Условни оператори. Оператори за цикъл. Оператори break и continue. Оператор за разклонение.

Основни управляващи структури в С/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";
}