Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операторы языка C++_new — копия.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
107.2 Кб
Скачать

Вложенные циклы

Разрешено вложение любых циклов в любые циклы.

Действует следующее правило: для каждой итерации внешнего цикла выполняются все итерации внутреннего цикла.

void main()

{ for (int i =0 ; i < 3 ; i ++ ) // внешний цикл

{ cout <<’\n’<< i ; // переменная i действует до конца блока

// функции main

for ( int i = 6 ; i>3 ; i-- ) cout << i ; //переопределение

// другой переменной с тем же именем до конца блока

// внешнего цикла

cout << i ;

}

} 0 6 5 4 3

1 6 5 4 3

2 6 5 4 3

Операторы передачи управления

К операторам передачи управления относятся:

- оператор безусловного перехода goto,

- оператор возврата из функции return,

- оператор выхода из цикла или переключателя break,

- оператор перехода к следующей итерации цикла continue.

goto A; //- ошибка

float x = 1.2;

goto A; //- допустимо

{int n=2;

x*=n;}

A: cout <<x;

Форма оператора безусловного перехода:

goto идентификатор метки;

Передача управления разрешена на любой оператор, помеченный меткой.

Имя метки действует и уникально в теле функции, где расположен оператор.

Существует запрет: нельзя передавать управление через определение, содержащее инициализацию объекта, но можно обходить вложенные блоки, содержащие определение с инициализацией.

При использовании оператора goto рекомендуется:

  1. не входить внутрь блока извне;

  2. не входить внутрь условного оператора;

  3. не входить извне внутрь переключателя;

  4. не передавать управление внутрь цикла;

Есть случаи, когда использование оператора goto обеспечивает наиболее простое решение:

  1. выход из нескольких вложенных циклов или переключателей;

  2. к одному участку программы перейти из разных мест функции;

Оператор возврата из функции имеет вид:

return выражение; или return;

Возвращает в точку вызова функции значение выражения, которое, если присутствует, может быть только скалярным.

Если выражение в операторе return отсутствует, то возвращаемое функцией значение имеет тип void.

Оператор выхода из цикла или переключателя break.

Прекращает выполнение операторов цикла или переключателя и осуществляет передачу управления к следующему за циклом или переключателем оператору.

При многократном вложении циклов и переключателей оператор break не может передать управление из внутреннего уровня на самый внешний. break позволяет выйти, из внутреннего цикла в ближайший внешний цикл.

Оператор перехода к следующей итерации continue (используется только в циклах).

Завершает текущую итерацию цикла и начинается проверка условия продолжения цикла. Его действия эквивалентны оператору передаче управления в самом конце тела цикла.

#define n 100

main (){

int k, i ;

float x [n] = { …} , s ;

for ( s=0.0 , k = 0, i = 0 ; i < n; i++ )

{ if ( x[i] <=0.0) continue ;

k++ ; //количество только положительных элементов

s + = x[i]; // сумма положительных элементов

}