«Обнаружен недоступный код» - PullRequest
1 голос
/ 17 января 2011
static int Simple() {
    for (int v = 211; v < 661; v++) {
            return v;
    }
}

'v' в v ++ подчеркнут, и мой отладчик говорит, что обнаружен недоступный код.

Ответы [ 6 ]

5 голосов
/ 17 января 2011

Потому что он никогда не достигнет этой части кода.Он вернется на первой итерации цикла for.Помните, что это порядок выполнения цикла for в C #:

for (init; condition; increment) {
    body;
}
  1. init
  2. условие
  3. тело (если условие истинно)
  4. приращение
4 голосов
/ 17 января 2011

Оператор return собирается немедленно выйти из цикла, и v ++ не получит шанса на выполнение.

2 голосов
/ 17 января 2011

Компилятор превратит ваш цикл в нечто вроде:

int v = 211;

loop:
if (v < 661)
{
    return v;
} else {
    v++;
    goto loop;
}
2 голосов
/ 17 января 2011

Потому что v увеличивается после выполнения тела цикла.Но это говорит «эй, не повторяй цикл, уходи!», Поэтому v никогда не будет увеличиваться.

2 голосов
/ 17 января 2011

вы определяете цикл for, который повторяет более 450 значений, но вы возвращаетесь на первой итерации цикла (который покидает тело функции и поэтому останавливает выполнение цикла for!). Другие 449 значений не будут повторяться, поэтому код недоступен.

2 голосов
/ 17 января 2011

Инкремент никогда не будет выполнен, потому что вы возвращаете значение v после первого шага в цикле for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...