Цикл for в C++

Цикл for в C++
5 (100%) 1 голосування




for C++, for С++

Как вы заметили в содержании, на главной странице сайта, в языке C применяются несколько видов циклов. Цикл for ми розглянемо першим, так как его легче понять новичкам, с моей точки зрения. А циклы while і do while, рассмотрены в отдельной статье.

Для начала, разберемся с тем, що означає цикл в програмуванні. Цикл – это специальный оператор, с помощью которого происходит повторение определённого участка кода определённое количество раз (какой участок кода повторять и когда цикл должен прерваться – определяет программист). Ще одне визначення запропонував відвідувач нашого сайту rrrFer: цикл – конструкция языка, предназначенная для организации повторного исполнения команд. Наприклад, щоб вивести на екран числа від одиниці до п'ятисот, можно использовать ручной вывод на экран:

ручной ввод (без цикла for)

Согласитесь – не самое интересное задание и представьте сколько пришлось бы прокручивать колесико мышки, чтобы добраться до конца кода. А можна скористатися циклом for і скоротити, тим самим в десятки разів, час на написання цієї “интересной” программы и сам размер кода. Вот, якомога виконати це завдання із застосуванням for:

Ми починаємо визначати наш цикл в рядку 6 . Для этого пишем ключевое слово for і за ним круглі дужки () . В круглых скобках объявляется управляющая переменная (переменная-счетчик) i. В нашем случае, вона инициализирована нулем. Після ініціалізації стоїть крапка з комою ; . Далі маємо умову: i < 500 (оно означает, что пока i меньше 500, код в теле цикла будет повторяться) и снова точка с запятой ; . Именно оно и будет “говорить” програмі доки буде виконуватися тіло циклу (код в фигурных скобках {}). наостанок вказуємо, как будет изменяться i з кожним кроком циклу (у нас – увеличение на единицу, используя постфиксный инкремент). Если описать одним предложением, те, что расположено в круглых скобках, команда будет звучать так – выполнять тело цикла, пока переменная i менше п'ятисот, увеличивая i на единицу, при кожному кроці циклу. Крок циклу ще називають итерацией. А переменную-счетчик – управляющей переменной, так как она управляет количеством итераций.

Розберемо для наочності кілька кроків циклу з нашого прикладу. При першій ітерації циклу керуюча змінна дорівнює 0. Поэтому для вывода на экран единицы используем выражение i + 1 (0 + 1). Когда тело цикла выполнилось, происходит изменение (увеличение) управляющей переменной i так, як ми вказали в круглих дужках () после оператора for – тобто вона стає рівною одиниці. Вторая итерация начинается с проверки условия (у нас i < 500). Если i действительно < 500, виконання тіла циклу повториться – на экран снова покажется i + 1, что эквивалентно 1 + 1, то есть 2. Последний раз цикл выполнится, когда управляющая переменная будет равна 499 и на экран покажется значение i + 1 (499 + 1). После этого её значение снова увеличится на единицу, но условие повторения цикла уже не будет выполняться, так как i (500) уже не меньше 500. Після завершення роботи циклу програма перейде до виконання наступного рядка коду, расположенной за закрывающей } фигурной скобкой тела цикла. Результат выполнения программы посмотрите сами, запустив программу.

Управляющая переменная может как увеличиваться так и уменьшаться. В зависимости от того, какая задача поставлена перед программистом. Посмотрите на этот код. При его выполнении, на экране мы увидим числа, розташовані по спадаючій, от 500 до 1.

Не обязательно использовать постфиксный инкремент или декремент. Изменяем управляющую переменную так, как того требует задача. Це може бути ++i, i = 2, i = 20, i -= 15… Наприклад:

цикл for - управляющая переменная

управляющая переменная i змінюється від 8 до 88 включительно, при этом шаг изменения равен 8. То есть сначала i = 8, на второй итерации 16 и так далее до 88.

цикл for - управляющая переменная

управляющая переменная i змінюється від 3000 до 300 включительно, с уменьшением при каждой итерации на 300 (3000, 2700, 2400…)

цикл for c++, Цикл для C ++

управляющая переменная i змінюється від 0 до 100 включительно, зі збільшенням при кожній ітерації на 10. (0, 10, 20…100)

цикл for - управляющая переменная

управляющая переменная i змінюється від 3000 до 3 включительно, з розподілом при кожній ітерації на 10. (3000, 300, 30, 3)

В дополнение ко всему сказанному, хочу добавить, что все три, використовувані в круглих дужках, выражения необязательны. Если сделать такую, наприклад, запись: for( ; ; ) – это будет воспринято компилятором, как запуск так называемого бесконечного цикла. Здесь нет ни управляющей переменной, ни условия продолжения цикла, ні зміни керуючоїзмінної. Тобто цикл буде виконуватися нескінченно. В этом случае, чтобы все-таки как-то работать с таким циклом, керуюча змінна може бути визначена до циклу, её изменение можно добавить в конец тела for, а условие продолжения цикла можно задать используя оператор if і оператор break. Вот как это будет выглядеть:

Отмечу, что существует такое понятие, як область видимості змінної. В этом примере область видимости переменной i – тело главной функции main(). А в предыдущих примерах, она ограничивалась телом цикла for і за його межами ця змінна вже була недоступна (к ней уже нельзя было обратиться – вывести её значение на экран, например) Це треба мати на увазі. Так как, если в программе встречаются несколько циклов и управляющие переменные определяются выше в коде, а не в круглых скобках () після операторів for , для каждой необходимо придумывать уникальное имя. Или каким-то другим образом выходить из этой ситуации. Так що краще користуватися стандартним синтаксисом:

for ( определение управляющей переменной ; умова повторення циклу ; зміна керуючоїзмінної )

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

Рекомендую посмотреть видео по теме. В нем рассмотрен и цикл while




Практика программирования по этой теме находится здесь – Завдання: Цикл for.

Нові уроки з програмування:

34 думки про "Цикл for в C++

  1. адмін, спасибі що пишеш такі розбірливі статті. Пиши далі і нікого не слухай. Я тебе як новачок в програмуванні дуже добре розумію!

    1. Віталій, спасибо ) У цьому і суть – дати зрозуміти елементарне на простих прикладах. А для глибокого розуміння – тут вже без хороших книг і практики нікому не обійтися.

      1. До речі зазначу, сайт знахідка для новачка. Перелопатив під сотню ресурсів. Побачив стиль викладу тут і потер з букмарки всі інші.

      2. красно дякую! Чекаємо нових уроків. Зокрема про роботу з фалами. Дуже важлива тема. Дякую ще раз!!!! Автор крутий, реально виручав!

  2. спасибі тобі, автор!
    Ти один з тих людей, завдяки котрим, багато що стає доступним при розвитку IT технологій в освіті та розвитку людини, а це дуже круте справу і крутий внесок.

  3. Вітаю. Поясніть будь ласка, чому в першій задачі умова
    cout << i + 1 виконується тільки перший раз, а далі ігнорується?

      1. но тогда куда девается i++ , ведь эта команда тоже должна прибавить единицу ? т.е. сначала cout << 0+1 = 1, на екран виводиться 1,
        потом выполняется действие i++ и прибавляется еще единица 1+1=2,

        2 < 500? меньше,

        тогда cout << i + 1, т.е. 2+1=3 и на экран должно выводиться 3, а не 2.
        где подвох? без этого "i+1" все прекрасно логически получается.
        заранее спасибо.

      2. Получаться должно непрекрасно логически”, а проверкой работы кода!

        Оператор cout << i + 1 – нічого и никак не увеличивает: как было i значением 0 до операции, так и останется 0 після.
        И даже cout << i + 1000000 никак не изменит значения i.
        cout – это только вывод вычисленного значения, а переменной i никакого присвоения там не показано.

залишити коментар

Код розміщуйте в тегах: <pre class="lang:C ++ декодуванням:true ">ВАШ КОД</заздалегідь>