Область видимости в циклах в C++
Давайте посмотрим, какой областью видимости обладают переменные при работе с циклами. Объявим какую-нибудь переменную внутри цикла:
#include <iostream>
int main() {
for (int i = 1; i <= 9; i++) {
int num = 3;
std::cout << num << "\n"; // выведет 3
}
return 0;
}
Если же попытаться вывести эту переменную снаружи цикла, то мы получим ошибку:
for (int i = 1; i <= 9; i++) {
int num = 3;
}
std::cout << num << "\n"; // ошибка
Счетчик из заголовка цикла снаружи тоже не виден:
for (int i = 1; i <= 9; i++) {
}
std::cout << i << "\n"; // ошибка
При необходимости можно объявить переменную снаружи цикла - тогда она будет доступна как внутри цикла, так и снаружи:
#include <iostream>
int main() {
int num; // объявим переменную снаружи цикла
for (int i = 1; i <= 9; i++) {
num = 3; // установим ей значение
}
std::cout << num << "\n"; // выведет 3
return 0;
}