Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

 

Каждый из операторов цикла может быть вложен в любой другой в произвольной последовательности. Глубина вложенности циклов не ограничена.

 

В С++ есть пять операторов, изменяющих естественный порядок выполнения вычислений:

  • оператор выхода из цикла и переключателя break;
  • оператор перехода к следующей итерации цикла continue;
  • оператор возврата из функции return;
  • оператор безусловного перехода goto;
  • оператор генерации исключения throw.

Оператор выхода break используется для немедленного завершения оператора цикла или switch. Выполнение передается следующему после завершенного оператору.

Рассмотрим его использование на примере открытого итеративного цикла for. На примере вычисления суммы чисел от 1 до 100.

 

int i = 1, sum = 0;for (;;) { if(i > 100) break; sum += i; i++; }

 

Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на модификацию параметров цикла (в случае цикла for) и начало следующей итерации.

Рассмотрим его использование на примере вычисления суммы 1 / x, если x изменяется в диапазоне [-5, 5].

 

#include <stdio.h>

int main()

{

float X, Sum = 0;

 

for (X = -5; X <= 5; X++) { if(X == 0) continue; Sum = Sum + 1 / X;

printf ("\n Sum = %f", Sum);

}

 

Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Мы рассмотрим его вместе с функциями в соответствующей теме.

Оператор безусловного перехода goto имеет формат:

 

goto метка;

 

В теле той же функции должна присутствовать ровно одна конструкция вида:

 

метка: оператор;

 

Оператор goto передает управление на помеченный оператор. Метка – это обычный идентификатор, областью видимости которого является функция, в теле которой он встречается.

Использование оператора безусловного перехода оправдано в двух случаях:

  • принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;
  • переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия).

В остальных случаях для записи любого алгоритма существуют более подходящие средства.

Исключительную ситуацию (или просто исключение) генерирует либо программист с помощью оператора throw, либо сама среда выполнения. Это происходит, когда во время выполнения программы возникают какие-либо ошибки, например, деление на ноль или переполнение. Механизм обработки исключений, реализованный в С++, позволяет реагировать на подобные ошибки и таким образом избегать аварийного завершения программы. Он будет рассмотрен в другой теме.

 




Поделиться с друзьями:


Дата добавления: 2015-05-29; Просмотров: 361; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.