Почему продолжение внутри цикла - плохая идея? - PullRequest
8 голосов
/ 06 февраля 2011

Дуглас Крокфод говорит, что обычно лучше провести рефакторинг continue внутри цикла.

Почему продолжение считается плохим внутри цикла?

Ответы [ 3 ]

7 голосов
/ 06 февраля 2011

Использование continue будет означать, что в вашем while.

написано недостаточно условий. Вместо этого вы должны использовать if внутри цикла while или добавить условие в while петля.

4 голосов
/ 06 февраля 2011

Использование goto, break, continue, throw или return внутри тела цикла может также иметь нежелательный эффект.Вот еще один пример, когда элемент управления цикла и тело цикла тесно переплетены.Это пишет 1, 2 и 3 как прежде?Вы уверены?

int value = 1;
    for (;;++value)
    {
        cout << value << endl;
        if (value != 4)
            continue;
        else
            break;
    }

Возможно, вы думаете, что советовать вам не использовать операторы return внутри тела цикла слишком усердно.Я действительно это имею в виду?Да.Функции, которые возвращают что-то, должны делать это с помощью одного оператора return в самом конце функции.Вот несколько практических причин, по которым:

Ссылка

Отказ от ответственности: Не мой материал, я ссылаюсь на источник

1 голос
/ 06 февраля 2011

Эффект continue как-то сравним с goto в начале цикла.Это делает ваш код более трудным для понимания - например, goto s.

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