Я столкнулся с этим странным поведением, когда я кодировал. Поэтому я прошу об этом здесь.
Какова область действия цикла for
при объявлении переменных?
Этот код компилирует отлично
for (int i = 0; i < 10; i++) { }
for (int i = 0; i < 10; i++) { }
Это означает, что оба int i
не входят в одну область.
Но этот код не компилируется.
for (int i = 0; i < 10; i++) { }
int i; // Conflicts with both first loop and second one.
for (int i = 0; i < 10; i++) { }
Это означает, что int i
в середине циклов имеет ту же область действия первого цикла и второго цикла.
Но как int i
в двух циклах for
имеют разную область видимости, но ту же область с серединой int i
? Потому что в настоящее время я вижу их на одном уровне.
Я знаю, что второй код не компилируется. Почему первый код компилируется, если в области есть проблемы. Является ли это исключением внутри компилятора?