Блоки і області видимості змінних

Кілька операторів в тілі циклу

Число виконань циклу

Інкрементуючий вираз

Інкрементуючий вираз призначений для зміни значення лічильника циклу. Часто такі зміни зводяться до інкрементації лічильника. Модифікація лічильника відбувається після того, як тіло циклу повністю виконалося. В нашому прикладі збільшення 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 не визначена.

Перевагою такого обмеження області видимості змінних є те, що одне і те ж ім’я змінної можна використовувати кілька раз в різних блоках програми. Відмітимо ще, що такий спосіб оформлення змінних характерний для С++, але рідко використовується в С.

Щоб легше читати код, можна «зсунути» тіло циклу вправо порівняно з заголовком. На роботу компілятора це не впливає.