Организация операторов циклов — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Организация операторов циклов

2020-03-31 205
Организация операторов циклов 0.00 из 5.00 0 оценок
Заказать работу

Цикл [7] - в программировании - оператор языка программирования, позволяющий многократно повторять одну и ту же последовательность команд (тело цикла). Различают:

- операторы циклов с заранее известным числом повторений;

- циклы с предусловиями;

- циклы с постусловиями.

Вследствие схожести структур рассмотрение всех типов циклов пройдет одним блоком.

Циклы в Паскале. [12]У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла. В языке программирования Паскаль существует три вида циклических конструкций. Цикл for используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется). В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Паскале тело цикла не должно содержать выражений, изменяющих счетчик. Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false - то нет. Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании. Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat - цикл с постусловием. В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false - его повторение.

Циклы в языке Си мало чем отличаются от циклов языка Паскаль. Также существует три конструкции для реализации цикла; это оператор «for(…;…;…)…;», оператор «while(…) …;» и оператор «do … while(…);». Первые два цикла предусловные, последний постусловный. Все циклы подразумевают выполнение одного оператора и в качестве условия продолжения цикла требуют логическую истину (неравенство нулю в Си). Условие выхода в операторе while помещается в круглые скобки и должно быть неравным нулю для продолжения работы цикла. Оператор for внутри скобок параметров цикла содержит следующие выражения: первый параметр выполняется один раз перед стартом цикла, второй является условием для выполнения цикла (также как и для while он не должен равняться нулю), а третий выполняется каждый проход в конце тела цикла. Каждый из параметров может быть опущен, однако символ точки с запятой опускать запрещается. Внутри параметров допускается использование оператора запятая.

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

Циклы в обоих языках имеют примерно сходный синтаксис и мало отличаются; исключение из всего ряда составляет конструкция REPEAT … UNTIL, не вписывающаяся в общую концепцию подобия. Из этого можно сделать вывод, что циклы языка Си более удобны для восприятия.

 

Безусловный переход

Оператор BREAK существует в обоих языках программирования, и в обоих языках относительно циклов он несет одинаковую функциональную нагрузку - выход из текущего блока цикла. Оператор BREAK предназначен для досрочного завершения цикла. При его выполнении происходит немедленный выход из текущего цикла и переход к выполнению оператора, следующего за циклом. Оператор CONTINUE завершает текущую итерацию цикла, осуществляя переход к концу тела цикла. Главное различие для языков Си и Паскаль в использовании этих операторов в том, что в Си это именно операторы, а в ранних версиях Паскаля (включая BorlandPascal и DelphiPascal) это процедуры.

Оператор GOTO и система меток также имеется в обоих языках. В Паскале оператор GOTO осуществляет переход к оператору, помеченному специальной меткой, которая отделяется от самого оператора двоеточием. В качестве метки может быть использовано любое целое число без знака, содержащее более четырех цифр, или любое имя. Чтобы можно было использовать метку, она должна быть в обязательном порядке объявлена в разделе меток в описательной части программы. Этот раздел начинается служебным словом LABEL, после которого через запятую перечисляются метки [13]. В языке Си метки обозначаются таким же образом, но описывать их не нужно. В обоих языках использование этих операторов основано на аналоге оператора языка Ассемблер, поэтому и различий в их использовании нет.

 


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

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.