Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование лекции.doc
Скачиваний:
32
Добавлен:
03.12.2018
Размер:
4.85 Mб
Скачать

Глава 7. Программирование циклических процессов

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

7.1 Понятие цикла

Для реализации подобных вычислений предназначены операторы циклов, которые задают повторяющееся выполнение одного или нескольких операторов (блока) и позволяют записать эти действия в компактной форме.

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

Алгоритм циклической структуры в наиболее общем виде должен содержать:

  • подготовку цикла: задание начальных значений переменным цикла перед первым его выполнением;

  • тело цикла; действия, повторяемые в цикле для различных значений переменных цикла;

  • изменение значений переменных цикла при каждом новом его выполнении;

  • управление циклом: проверку условия продолжения работы цикла.

Один проход тела цикла называется итерацией. Если параметр цикла целочис­ленный, он называется счетчиком цикла.

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

Передавать управление извне внутрь цикла запре­щается.

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

В С# существует несколько разновидностей циклических операторов, реализующих структуру повторения. Все циклические операторы имеют как общие моменты в своей организации и функционировании, так и отличия. Любой цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого используются специальные операторы, которые относятся к группе операторов, изменяющих естественный порядок выполнения вычислений.

В С# есть несколько таких операторов:

  • goto – оператор безусловного перехода;

  • break – оператор выхода из цикла;

  • continue – оператор перехода к следующей итерации цикла;

  • return – оператор возврата из функции;

  • throw – оператор генерации исключения.

Эти операторы могут передать управление в пределах блока, в котором они использованы, и за его пределы. Передавать управление внутрь другого блока запрещается.

Использование оператора break рассматривалось в предыдущем разделе при организации работы оператора выбора switch. Напомним, что при выборе определенной case-ветви ее инструкции выполняются до тех пор, пока не встретится инструкция break или любой другой оператор перехода (goto, return).

В данном разделе будут рассмотрены те операторы, которые широко используются при организации циклических процессов. Это, прежде всего: break, continue в той трактовке, в которой они приведены выше. Использование оператора безусловного перехода goto вообще нежелательно в программе по причинам указанным ниже. Там же будут оговорены требования к его использованию, если все же избежать такового не удается.

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