- •Операції відношення
- •Цикл for
- •Ініціалізуючий вираз
- •Умова виконання циклу
- •Інкрементуючий вираз
- •Число виконань циклу
- •Кілька операторів в тілі циклу
- •Блоки і області видимості змінних
- •Варіанти циклу for
- •Кілька ініціалізуючих виразів та умов циклу
- •Цикл while
- •Виявлення помилок
- •Кілька операторів в циклі while
- •Пріоритети арифметичних операцій і операцій відношення
- •Цикл do
- •Вибір типу циклу
- •Розгалуження
- •Умовний оператор if
- •Кілька операторів в тілі if
- •If всередині циклів
- •Оператор if...Else
- •Функція getche()
- •Умова з присвоюванням
- •Вкладені розгалуження if...Else
- •Оператор switch
- •Оператор break
- •Інший варіант програми з використання switch і ключового слова default
- •Порівняння switch I if...Else
- •Умовна операція
- •Логічні операції
- •Операція логічного і
- •Цілі величини в якості булевих
- •Інші оператори переходу
- •Оператор break
- •Оператор continue
- •Оператор goto
- •Підсумок
- •Питання
Ініціалізуючий вираз
Ініціалізуючий вираз обчислюється лише один раз – на початку виконання циклу. Обчислене значення ініціалізує лічильник циклу. В нашому прикладі
for (j=0;j<15;j++)
змінна j одержує початкове значення 0.
Умова виконання циклу
Як правило, умова виконання циклу містить в собі операцію відношення. Умова перевіряється кожен раз перед виконанням тіла циклу і визначає, потрібно виконувати цикл ще раз чи ні. Якщо умова виконується, то відповідний вираз істинний і тіло циклу виконується ще раз. В іншому випадку управління передається тому оператору, який записаний після циклу.. В нашій програмі після завершення циклу управління передається оператору
cout<<endl;
Інкрементуючий вираз
Інкрементуючий вираз призначений для зміни значення лічильника циклу. Часто такі зміни зводяться до інкрементації лічильника. Модифікація лічильника відбувається після того, як тіло циклу повністю виконалося. В нашому прикладі збільшення j на 1 відбувається кожного разу після завершення тіла циклу.
Число виконань циклу
В нашому прикладі цикл виконується 15 раз. Вперше він виконується при нульовому значенні j. Останнє виконання тіла циклу настає при j=14, оскільки умовою виконання циклу є j<15. Коли j приймає значення 15, виконання циклу переривається. Як правило, подібну схему використовують, коли необхідні дії потрібно виконувати фіксоване число раз. Присвоюючи лічильнику початкове значення, рівне 0, в якості умови продовження циклу ставлять порівняння лічильника з бажаним числом виконань і збільшують лічильник на одиницю кожен раз, коли виконання тіла циклу завершується.
Кілька операторів в тілі циклу
Найчастіше нам потрібно виконати в тілі циклу не один, а кілька операторів. Тоді ці кілька операторів слід включити у фігурні дужки, як ми це робили з тілом функції.
Наступний приклад демонструє використання кількох операторів в тілі одного циклу.
#include <iostrem>
#include <iomanip>
using namespace std;
int main()
{int numb;
for(numb=1;numb<=10;numb++)
{
cout<<setw(4)<<numb;
int cube=numb*numb*numb;
cout<<setw(6)<<cube<<endl;
}
return 0;
}
Звернемо увагу на те, що після закриваючої фігурної дужки не ставиться крапка з комою, початкове значення лічильника може бути довільним (в нашому випадку 1), а умова перевірки містить операцію «менше або рівне».
Якщо в тілі нашого циклу містить лише один оператор, його все одно можна взяти у фігурні дужки. Тоді легше читати програмний код.
Блоки і області видимості змінних
Тіло циклу, включене у фігурні дужки, називається блоком. Важливою особливістю блоку є те, що змінні, визначені всередині блоку, невидимі за його межами. В нашому прикладі ми визначили змінну cube всередині блоку
int cube=numb*numb*numb;
Дістати доступ до цієї змінно ззовні циклу неможливо – вона видима лише всередині фігурних дужок. Якщо ми спробуємо присвоїти значення змінній cube поза блоком
cube=0;
то компілятор видасть повідомлення про те, що змінна з іменем cube не визначена.
Перевагою такого обмеження області видимості змінних є те, що одне і те ж ім’я змінної можна використовувати кілька раз в різних блоках програми. Відмітимо ще, що такий спосіб оформлення змінних характерний для С++, але рідко використовується в С.
Щоб легше читати код, можна «зсунути» тіло циклу вправо порівняно з заголовком. На роботу компілятора це не впливає.
