Область видимости счетчика в C#
При цикле внутри цикла переменные внешнего
тела доступны во внутреннем. Переменная
num из внешнего тела видна во внутреннем:
for (int i = 0; i <= 2; i++) {
int num = 3;
for (int j = 0; j <= 2; j++) {
Console.WriteLine(num); // prints 3
}
}
Счетчик i внешнего цикла тоже виден
во внутреннем теле, а счетчик j -
только внутри внутреннего цикла:
for (int i = 0; i <= 2; i++) {
for (int j = 0; j <= 2; j++) {
Console.WriteLine(i + j);
}
}
Снаружи обоих циклов num недоступна:
for (int i = 0; i <= 2; i++) {
int num = 3;
for (int j = 0; j <= 2; j++) {
}
}
Console.WriteLine(num); // error
Счетчик j не виден снаружи внутреннего
цикла и тем более снаружи внешнего:
for (int i = 0; i <= 2; i++) {
for (int j = 0; j <= 2; j++) {
int num = 3;
}
Console.WriteLine(j); // error
}
Console.WriteLine(i); // error
Определите, соберется ли программа:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
}
}
Console.WriteLine(j);