sOwlO Ответов: 2

Установите переменную внутри цикла


Здравствуйте, я пытаюсь по-настоящему понять суть программирования на c#. Я все еще нахожусь в процессе изучения основ.

И я не понимаю, почему я не могу установить переменную в цикле. Почему это так? В этом есть смысл, но это запрещено. Почему?

Я так и сделал:

int c = 0;
            
            for (int x = 1; x < 21; x++)
            {
                int c += x;

            }
            Console.WriteLine(c);
            Console.ReadKey();


И мне требуется так много времени, чтобы понять, что я должен удалить "int" перед "c". Но не понимаю почему.

Что я уже пробовал:

int c = 0;
            
            for (int x = 1; x < 21; x++)
            {
                c += x;

            }
            Console.WriteLine(c);
            Console.ReadKey();


Эта работа.

2 Ответов

Рейтинг:
18

MadMyche

Это сводится к тому, что известно как масштаб, и есть различные уровни этого.

В вашем первом примере вы фактически объявляете новую переменную, которая является локальной для этого блока кода (цикл for). Как только этот блок заканчивается, то же самое происходит и с этой переменной.

for (int x = 1; x < 21; x++)
{
      int c += x;
}
В другом примере вы не определяете эту переменную в блоке FOR, но она объявляется в том же методе, что и цикл for, поэтому она доступна в цикле
int c = 0;
for (int x = 1; x < 21; x++)
{
    c += x;
}

В двух словах... если он создан внутри блока, то он недоступен после окончания блока


Рейтинг:
1

Patrice T

Цитата:
И я не понимаю, почему я не могу установить переменную в цикле. Почему это так? В этом есть смысл, но это запрещено. Почему?

Вам нужно узнать о области действия переменных.
Переменная, определенная внутри пары {} , существует только внутри них.
Область действия переменных в C++ - GeeksforGeeks[^]