Как сделать чтобы цикл выполнялся 1 раз

Обновлено: 02.07.2024

Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. В этом уроке мы научимся программировать циклы на C++, после чего посчитаем сумму всех чисел от 1 до 1000.

Цикл for

Если мы знаем точное количество действий (итераций) цикла, то можем использовать цикл for . Синтаксис его выглядит примерно так:

Итерацией цикла называется один проход этого цикла

Существует частный случай этой записи, который мы сегодня и разберем:

Счетчик цикла — это переменная, в которой хранится количество проходов данного цикла.

Описание синтаксиса

Сначала присваивается первоначальное значение счетчику, после чего ставится точка с запятой.

Затем задается конечное значение счетчика цикла. После того, как значение счетчика достигнет указанного предела, цикл завершится. Снова ставим точку с запятой.

Задаем шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом проходе.

Пример кода

Напишем программу, которая будет считать сумму всех чисел от 1 до 1000.

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

Ниже приведен исходный код программы, считающей сумму всех целых чисел от 1 до 1000.

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

Циклы

Циклы

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

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

Задача 1. Вывести все числа от 1 до числа, введенного с клавиатуры.

While, или цикл с предусловием

Как вы, наверное, уже поняли из названия, while — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.

While имеет формат:

while do ;

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

Repeat, или цикл с постусловием

Repeat — полная противоположность while. Repeat — это цикл, в котором условие стоит после тела. Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.

Repeat имеет формат:

repeat < повторяй … >
;
;

until

Begin и end не требуются.

For, или цикл с параметром

For — это цикл, в котором тело выполняется заданное количество раз.

Существует две формы записи этого цикла:

Первая форма

После каждой итерации значение будет увеличиваться на 1.

— это начальное значение счетчика. Это может быть переменная или число.
: как только значение станет больше , выполнение цикла прекратится.

Если требуется написать несколько операторов в теле цикла, используем begin и end.

И , и , и — переменные целого типа.

Чаще всего в качестве счетчика используется переменная i.

Вторая форма

После каждой итерации значение будет уменьшатся на 1.

— это начальное значение счетчика.
: как только значение станет меньше , выполнение цикла прекратится.

Два важных примечания:

  1. Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
  2. Изменять значение счетчика внутри тела нельзя! Вот что выводит компилятор:

for

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

Давайте решим пару задач.

For1. Даны целые числа K и N (N > 0). Вывести N раз число K.

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

For2. Даны два целых числа A и B (A

For9. Даны два целых числа A и B (A

Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.

For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.

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

While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Каждый раз вычитаем B из А, пока А — В >= 0.

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.

Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 — число является степенью тройки; если N <> 1, тогда число — не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.

На сегодня все! Не забывайте почаще заходить на наш сайт и кликать по кнопочкам, которые расположены перед комментариями.

Что мы делаем ежедневно? Думаю, у каждого из нас свой список дел. Однако раз за разом повторяются одни и те же операции для достижения одних и тех же целей. Это и есть цикл. В программировании циклы используются при обработке множеств / файлов или же для вычисления математических выражений.

Цикл разработки проекта / Цикл разработки программного продукта

Выделяют несколько видов циклов:

  • while … do (с предусловием );
  • do … while (с постусловием);
  • for (с параметром)

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

  1. Инициализация — установка начальных параметров счетчика;
  2. Условие — условие выхода из цикла, как только оно вернет ложь — произойдет выход из цикла;
  3. Порядок выполнения — команда увеличения счетчика.

Действия, выполняемые циклически, называются телом цикла. Рассмотрим наиболее общий пример: поиск факториала числа. Факториал числа вычисляется по формуле:

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

Рассмотрим пример вычисления факториала при помощи while.

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

Этот вид цикла подобен while, с той лишь разницей, что проверка условия производится после выполнения тела цикла.

И снова рассмотрим вычисление факториала.

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

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

Пользователь вводит символ, после чего для каждого элемента массива проверяется, начинается ли он с заданного символа. И, если условие выполняется, элемент массива запоминается в результирующей строке. Главным плюсом foreach является то, что он исключает возможность выхода за границы массива.

Управление циклом. Команды break и countinue

Оператор break используется для прерывания выполнения цикла. Пусть, нам нужно найти некоторый элемент в массиве. Так, используя цикл, мы можем выйти из цикла, как только найдем искомый элемент.

Так мы находим индекс искомого слова в массиве, при этом не выполняем лишних операций после того, как найдем искомый элемент.

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

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

Начнём с цикла типа while, так как, я считаю, что из всех трёх рассматриваемых нами в данном занятии видов циклов он самый простой.

Выглядит цикл с оператором while примерно вот так


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

То есть если мы, например в скобках напишем просто единичку (1), то цикл наш станет бесконечным. Это конечно в теории. Цикл можно окончить, если где-то в теле применить определённые команды, с которыми мы будем знакомиться позже. Не всё сразу.

Давайте попробуем работу цикла на практике. Конечно, пока будем выполнять только простейшие операторы, чтобы было понятнее.

Проект создадим с именем MYPROG06 из проекта прошлого занятия.

Из тела функции main() в файле main.c удалим весь код, кроме команды возврата значения, останется у нас вот это

int main()

return 0 ; //Return an integer from a function

Объявим и сразу инициализируем целочисленную переменную

А теперь добавим наш цикл

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

Попробуем собрать наш код и запустить приложение. Посмотрим на результат работы нашей программы


Как видим, наш счётчик досчитал от 10 до 1 в обратную сторону, так как у нас внутри цикла применено декрементирование. Причём, так как декрементирование происходит после вывода результата в консоль, то как только i становится равным нулю, мы в тело цикла больше не попадаем, а перепрыгиваем его полностью и переходим к команде return 0.

Следующий тип цикла — это цикл с двумя операторами do while.

Такой цикл выглядит уже вот таким образом


Давайте данный цикл попробуем на деле.

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

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


Теперь давайте попробуем задать в условии обеих циклов такое условие, которое никогда не бывает истинным, например обычный ноль (0)

while ( 0 )

Соберём код и посмотрим результат


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

Третий тип цикла — это цикл for. Данный цикл как правило используется тогда. когда заранее известно количество повторений. Но это классический вариант. А вообще, сфера использования данных циклов очень велика. Мы ещё встретимся в наших уроках с этим разнообразием различных вариантов циклов.

Цикл for выглядит следующим образом


Думаю, что объяснил вполне популярно. Я старался описать не слишком заумно, чтобы было понятно всем.

Давайте теперь проверим работу данного типа цикла на практике и добавим в нашу функцию main() следующий код

Читайте также: