Циклы в C++

Циклы в С++

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

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

Существует три вида циклов

1. Безусловный цикл (for())
2. Цикл с предусловием (while())
3. Цикл с постусловием(do … while())

Код, который находится в фигурных скобках ({}) после служебного слова (наименования используемого самим языком, в данном случае for, while, do), называется кодом находящимся в теле цикла.

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

 

For (безусловный цикл)

Этот тип циклов бывает полезен в тех случаях, когда мы заранее знаем количество проходов цикла (количество повторяющихся фрагментов кода).
В данном случае счётчик всегда увеличивается на 1.

Например, вывести на экран все числа от 1 до 100.

Циклы for C++

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

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

Например вывести все чётные числа от 1 до 100.

Вы заметили, что 100 не попало в вывод? Фокус прост: условие цикла (i < 100), условие не строгое, а наращивание (увеличение) счётчика происходит после того, как вывели значение на экран, то есть на моменте, когда у нас вывелось 98 наш счётчик увеличился на 2 и пошла проверка цикла, i < 100 — да, меньше. На этом моменте наш цикл завершается и программа идёт выполняться дальше по коду.

 

do … While() (цикл с постусловием)

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

Рассмотрим тот же пример, что и для while(), только преобразуем его под do…while() и изменим условие.

Циклы

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

Тонкости при работе с циклами

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

Пример с break и вечным циклом

Циклы

Уберите break и Ваш цикл никогда не закончится.

Пример с вложенным циклом (for())

Циклы

Пример с вложенным циклом (while())

Циклы

Чтобы исправить образовавшуюся проблему (вложенный цикл срабатывает лишь пока j не равно 10) нам необходимо обнулить j после достижения им значения 10.

Циклы

Запомните: переменная созданная в теле цикла, существует только в пределах этого тела.

То есть, если вы объявили переменную с именем z в теле цикла, то при обращении к переменной z в другом месте кода компилятор выдаст ошибку, так как этой переменной не существует.

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

Таким образом мы познакомились с циклами языка программирования C++ 🙂

Post Author: Nikulux

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