Цикли використовуються для багаторазового повторення деякого набора інструкцій. В С++ є три види циклів:
-
while
– цикл з передумовою;do … while
– цикл з післяумовою;for
– цикл з лічильником або з параметром
Один вид циклу можна замінити іншим. Конкретний вид циклу обирається розробником виходячи з типу задач, які необхідно розв’язати. Інструкції, які необхідно повторити називаються тілом циклу. Одноразове виконання інструкцій циклу називається ітерацією.
Цикл з лічильником (параметром) for
Цикл for
застосовується в тому випадку, коли в програмі перед виконанням інструкцій циклу відома кількість повторень цього циклу.
Блок-схема інструкціі for
виглядає наступним чином:
де x0 – початкове значення параметру, xn – кінцеве значення параметру, h – крок модифікації параметру.
Синтаксис:
1 2 3 |
for (ініціалізація; умова; модифікація) { інструкції тіла циклу; } |
Якщо у тілі циклу тільки одна інструкція, то {} можна опустити.
На початку відбувається опис та ініціалізація змінної-лічильника, далі перевірка умови, якщо вона істинна, то відбудеться ітерація циклу.
Зверніть увагу! Якщо поле умова залишити порожнім, то вона завжди буде вважатися істинною і ми отримаємо “вічний цикл”.
Після виконання інструкцій циклу відбудеться модифікація величини лічильника. В розділі модифікації найчастіше використовується операція постфіксного або префікскного інкременту (або декременту), але можна використовувати будь-який вираз з присвоєнням, що змінює значення параметру циклу.
Зверніть увагу! В C++ , як правило, опис змінної лічильника відбувається в заголовку цикла. Це пов’язано з тим, що змінні, визначені в середині циклу for
мають спеціальний тип області видимості – область видимості циклу. Такі змінні існують тільки всередині циклу і недоступні за його межами. По завершенні роботи циклу вони автоматично знищуються.
Розглянемо приклад.
Приклад 1. Вивести на екран степені числа 2 від 0 до N (N<100).
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> using namespace std; int main() { int n; cout << "Enter N<100 " << endl; cin >> n; for (int i = 0; i <= n; i++) { cout << "2^" << i << "=" << pow(2, i) << endl; } return 0; } |
Приклад 2. Вивести на екран квадрати парних чисел від 10 до N включно.
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> using namespace std; int main() { int n; cout << "Enter n"<< endl; cin >> n; for (int i = 10; i <= n; i+=2) { cout << i << "^2 = " << i*i << endl; } return 0; } |
В одному циклі можна задавати одразу декілька лічильників. При цьому декілька виразів в ітерації та ініціалізації розділяються комами. Умову повторення можна задавати тільки одну, але вон може бути виразом, який містить одразу декілька лічильників.
Полезная инфа!