Для чего используется оператор цикла

Операторы цикла в языке Си

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

Каждый цикл состоит из

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

В языке Си следующие виды циклов:

Цикл с предусловием while

Общая форма записи

Пример на Си : Посчитать сумму чисел от 1 до введенного k

Пример бесконечного цикла

while — цикл с предусловием, поэтому вполне возможно, что тело цикла не будет выполнено ни разу если в момент первой проверки проверяемое условие окажется ложным.

Например, если в приведенном выше коде программы ввести k=-1, то получим результат
Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Цикл с постусловием do. while

Общая форма записи

Использовать цикл do. while лучше в тех случаях, когда должна быть выполнена хотя бы одна итерация, либо когда инициализация объектов, участвующих в проверке условия, происходит внутри тела цикла.

Результат выполнения:
Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Параметрический цикл for

Общая форма записи

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

Эти три операции записываются в скобках и разделяются точкой с запятой ; ;. Как правило, параметром цикла является целочисленная переменная.
Инициализация параметра осуществляется только один раз — когда цикл for начинает выполняться.
Проверка Условия повторения цикла осуществляется перед каждым возможным выполнением тела цикла. Когда выражение, проверяющее Условие становится ложным (равным нулю), цикл завершается. Модификация параметра осуществляется в конце каждого выполнения тела цикла. Параметр может как увеличиваться, так и уменьшаться.

Пример на Си : Посчитать сумму чисел от 1 до введенного k

Результат выполнения
Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла
В записи цикла for можно опустить одно или несколько выражений, но нельзя опускать точку с запятой, разделяющие три составляющие цикла.
Код предыдущего примера можно представить в виде

Параметры, находящиеся в выражениях в заголовке цикла можно изменить при выполнении операции в теле цикла, например

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

В Си допускаются вложенные циклы, то есть когда один цикл находится внутри другого:

Пример : Вывести числа от 0 до 99, по 10 в каждой строке

Результат выполнения
Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Рекомендации по выбору цикла

При выборе цикла необходимо оценить необходимость проверки условия при входе в цикл или по завершении прохождения цикла.
Цикл с постусловием удобно применять в случаях, когда для проверки условия требуется вычислить значение выражения, которое затем будет размещено в теле цикла (см. выше пример ввода числа от 0 до 10).
Цикл c предусловием используется в случае если все переменные, участвующие в выражении, проверяющем условие, проинициализированы заранее, но точное число повторений цикла неизвестно или предполагается сложная модификация переменных, участвующих в формировании условия повторения цикла.
Если цикл ориентирован на работу с параметром, для которого заранее известно число повторений и шаг изменения, то более предпочтительным является параметрический цикл. Очень удобно использовать параметрический цикл при работе с массивами для перебора элементов.

Операторы прерывания и продолжения цикла break и continue

Оператор break позволяет выйти из цикла, не завершая его.
Оператор continue позволяет пропустить часть операторов тела цикла и начать новую итерацию.

Пример на Си : Вывести числа от 0 до 99 ниже главной диагонали

Результат выполнения
Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Пример на Си : Вывести числа от 0 до 99 исключая числа, оканчивающиеся на 5 или 8

Результат выполнения
Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

При вложенных циклах действия операторов break и continue распространяется только на самую внутреннюю структуру, в которой они содержатся.

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

Общая форма записи

Пример на Си : Вывести все целые числа от 5 до 0.

Источник

Оператор цикла

В языке С, как и в других языках программирования, операторы цикла служат для многократного выполнения последовательности операторов до тех пор, пока выполняется некоторое условие. Условие может быть установленным заранее (как в операторе for ) или меняться при выполнении тела цикла (как в while или do-while ).

Цикл for

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

В следующем примере в цикле for выводятся на экран числа от 1 до 100:

В следующем примере в цикле for выполняется блок операторов:

Операции возведения переменной х в квадрат и вызова функции printf() повторяются, пока х не примет значение 65. Обратите внимание на то, что здесь параметр цикла уменьшается, он инициализирован числом 100 и уменьшается на 5 при каждой итерации.

В операторе for условие цикла всегда проверяется перед началом итерации. Это значит, что операторы цикла могут не выполняться ни разу, если перед первой итерацией условие примет значение ЛОЖЬ. Например, в следующем фрагменте программы

Варианты цикла for

Один из распространенных способов усиления мощности цикла for — применение оператора «запятая» для создания двух параметров цикла. Оператор «запятая» связывает несколько выражений, заставляя их выполняться вместе (см. главу 2). В следующем примере обе переменные ( х и у ) являются параметрами цикла for и обе инициализируются в этом цикле:

Следующий пример демонстрирует использование двух параметров цикла. Функция converge() копирует содержимое одной строки в другую, начиная с обоих концов строки и кончая в ее середине.

Программа выводит на экран следующее:

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

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

Здесь в main() каждая секция цикла for состоит из вызовов функций, которые предлагают пользователю ввести число и считывают его. Если пользователь ввел 0, то цикл прекращается, потому что тогда условие цикла принимает значение ЛОЖЬ. В противном случае число возводится в квадрат. Таким образом, в этом примере цикла for секции инициализации и приращения используются весьма необычно, но совершенно правильно.

Другая интересная особенность цикла for состоит в том, что его секции могут быть вообще пустыми, присутствие в них какого-либо выражения не обязательно. В следующем примере цикл выполняется, пока пользователь не введет число 123:

Секция приращения оператора for здесь оставлена пустой. Это значит, что перед каждой итерацией значение переменной х проверяется на неравенство числу 123, а приращения не происходит, оно здесь ненужно. Если с клавиатуры ввести число 123, то условие принимает значение ЛОЖЬ и программа выходит из цикла.

Инициализацию параметра цикла for можно сделать за пределами этого цикла, но, конечно, до него. Это особенно уместно, если начальное значение параметра цикла вычисляется достаточно сложно, например:

В этом примере секция инициализации оставлена пустой, а переменная х инициализируется до входа в цикл.

Бесконечный цикл


Цикл for без тела цикла

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

Программисту иногда приходится решать задачу удаления пробелов из входного потока. Допустим, программа, работающая с базой данных, обрабатывает запрос «показать все балансы меньше 400». База данных требует представления каждого слова отдельно, без пробелов, т.е. обработчик распознает слово «показать», но не » показать». В следующем примере цикл for удаляет начальные пробелы в строке str :

В этом примере указатель str переставляется на первый символ, не являющийся пробелом. Цикл не имеет тела, так как в нем нет необходимости. [1]

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

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

Объявление переменных внутри цикла

Рассмотрим следующий пример:

В данном примере переменная i объявлена в секции инициализации цикла for и служит параметром цикла. Вне цикла переменная i невидима.

Цикл while

Обшая форма цикла while имеет следующий вид:

Здесь оператор (тело цикла) может быть пустым оператором, единственным оператором или блоком. Условие (управляющее выражение) может быть любым допустимым в языке выражением. Условие считается истинным, если значение выражения не равно нулю, а оператор выполняется, если условие принимает значение ИСТИНА. Если условие принимает значение ЛОЖЬ, программа выходит из цикла и выполняется следующий за циклом оператор.

В следующем примере ввод с клавиатуры происходит до тех пор, пока пользователь не введет символ А :

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

В этом примере переменная working является управляющей. Любая из трех функций может возвратить значение 0 и этим прервать выполнение цикла. Тело цикла while может быть пустым. Например, цикл

выполняется до тех пор, пока пользователь не введет символ ‘А’. Напоминаем, что оператор присваивания выполняет две задачи: присваивает значение выражения справа переменной слева и возвращает это значение как свое собственное.

Цикл do-while

Если оператор не является блоком, фигурные скобки не обязательны, но их почти всегда ставят, чтобы оператор достаточно наглядно отделялся от условия. Итерации оператора do-while выполняются, пока условие не примет значение ЛОЖЬ.

В следующем примере в цикле do-while числа считываются с клавиатуры, пока не встретится число, меньшее или равное 100:

Цикл do-while часто используется в функциях выбора пунктов меню. Если пользователь вводит допустимое значение, оно возвращается в качестве значения функции. В противном случае цикл требует повторить ввод. Следующий пример демонстрирует усовершенствованную версию программы для выбора пункта меню проверки грамматики:

В этом примере применение цикла do-while весьма уместно, потому что итерация, как уже упоминалось, всегда должна выполниться как минимум один раз. Цикл повторяется, пока его условие не станет ложным, т.е. пока пользователь не введет один из допустимых ответов.

[2] В некоторых языках (например АЛГОЛ 68) локализация параметра цикла выполняется автоматически.

Источник

BestProg

Циклы. Операторы завершения цикла

1. Какие преимущества дает использование операторов цикла в программе?

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

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

2. Какие есть виды операторов цикла в языке Паскаль?

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

3. Какой общий вид оператора цикла с параметром?

Цикл с параметром имеет два варианта реализации.

Вариант 1. Общий вид цикла с параметром:

Вариант 2. Общий вид цикла с параметром:

Пример применения оператора цикла с параметром.

Составить программу для вычисления факториала. Факториал вычисляется по следующей формуле:

n! = 1 * 2 * 3 * … * n.

4. Какой вид имеет оператор цикла с предусловием?

Общий вид оператора цикла с предусловием:

Пример применения оператора цикла с предусловием. Фрагмент кода, в котором осуществляется вычисление суммы:

S = 2 + 4 + 6 + … + 200

5. Какой вид имеет оператор цикла с постусловием?

Общий вид оператора цикла с постусловием:

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

Задача.

С помощью оператора цикла вычислить сумму:

S = 1 + 2 + … + 100

7. Какие есть операторы завершения цикла?

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

Оператор Break выполняет безусловный выход из цикла. Оператор Continue обеспечивает переход к началу новой итерации цикла.

Инструкция continue используется, если нужно остановить текущую итерацию и перейти к следующей итерации.

Пример фрагмента кода, который множит на 2 все положительные элементы массива m1 из 100 целых чисел. Если встречается отрицательный элемент, то он пропускается.

Программирование: теория и практика

Рубрики

Свежие записи

При использовании материалов сайта, ссылка на сайт обязательна.

Источник

Для чего используется оператор цикла

В Си существуют все три типа операторов цикла: цикл с предусловием, цикл с постусловием и цикл с па­раметром.

while (выражение) оператор;

Цикл повторяет свое выполнение, пока значение выражения от­лично от нуля, т. е. заключенное в нем условие цикла истинно.

В качестве примера использования оператора цикла рассмот­рим программу вычисления факториала целого положительного числа N!. Сопоставим программу решения этой задачи, написан­ную на Си.

// Программа вычисления факториала

Обратите внимание на операторы в теле цикла. Конечно, и в Си-программе можно было написать два оператора присваива­ния, объединив их фигурными скобками. Однако использован­ный способ записи более лаконичен и более характерен для Си. Этот же самый оператор можно было записать еще короче: F*=i++

При практическом использовании этой программы не следует забывать, что факториал — очень быстро растущая функция, и поэтому при определенных значениях N выйдет из диапазона, со­ответствующего типу long int. Задав для переменной F тип unsigned long, можно сдвинуть эту границу, но этого может оказаться недостаточно. Предлагаем в качестве самостоятельного задания исследовать предельные значения N для двух указанных типов переменной F.

Интересно свойство следующего оператора:

Это бесконечный пустой цикл. Использование в качестве вы­ражения константы 1 приводит к тому, что условие повторения цикла все время остается истинным и работа цикла никогда не заканчивается. Тело в этом цикле представляет собой пустой опе­ратор. При исполнении такого оператора программа будет «топ­таться на месте».

Источник

Простейший ввод-вывод. Управляющие операторы

Выражения, блоки и пустые операторы

Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. Частным случаем выражения является пустой оператор ; (он используется, когда по синтаксису оператор требуется, а по смыслу — нет). Примеры:

Условный оператор if

Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 4.1.

Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Примеры условных операторов:

В качестве примера подсчитаем количество очков после выстрела по мишени, изображенной на рис. 4.2.

Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Программист выбирает тип переменных, исходя из их назначения. Координаты выстрела нельзя представить целыми величинами, так как это приведет к потере точности результата, а счетчик очков не имеет смысла описывать как вещественный. Программа приведена в листинге 4.6.

Оператор выбора switch

Оператор switch ( переключатель ) предназначен для разветвления процесса вычислений на несколько направлений. Структурная схема оператора приведена на рис. 4.3.

Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

В листинге 4.7 приведен пример программы, реализующей простейший калькулятор на четыре действия.

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

Операторы цикла используются для вычислений, повторяющихся многократно. Блок, ради выполнения которого и организуется цикл, называется телом цикла. Остальные операторы служат для управления процессом повторения вычислений: это начальные установки, проверка условия продолжения цикла и модификация параметра цикла ( рис. 4.4). Один проход цикла называется итерацией.

Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

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

Проверка условия продолжения цикла выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием ), либо после тела цикла (цикл с постусловием ).

Цикл с предусловием while

В качестве примера рассмотрим программу, выводящую для аргумента х, изменяющегося в заданных пределах с заданным шагом, таблицу значений следующей функции:

Для чего используется оператор цикла. Смотреть фото Для чего используется оператор цикла. Смотреть картинку Для чего используется оператор цикла. Картинка про Для чего используется оператор цикла. Фото Для чего используется оператор цикла

Текст программы приведен в листинге 4.8.

Цикл с постусловием do

Цикл с постусловием реализует структурную схему, приведенную на рис. 4.4, б, и имеет вид:

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

Цикл с параметром for

Цикл с параметром имеет следующий формат:

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

Для примера вычислим сумму чисел от 1 до 100:

Любой цикл while может быть приведен к эквивалентному ему циклу for и наоборот. Например, два следующих цикла эквивалентны:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *