Do-while вместо if-else - PullRequest
       12

Do-while вместо if-else

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

Сегодня я изучил некоторый PHP-код и заметил, что do-while используется с перерывами вместо if-else. Каковы преимущества этого? Читаемость кода? Скорость? Что-нибудь еще?

Ответы [ 3 ]

10 голосов
/ 28 февраля 2011

Полагаю, вы имеете в виду следующее:

do {
    ...
    if ($foo == $bar) break;
    ...
} while (false);

Это просто способ пропустить фрагмент кода без нормального вложения, если в него будут включены операторыОператор break используется как оператор goto для перехода к концу цикла while.Весь фрагмент обернут в цикл do-while-false, чтобы он выполнялся один раз и допускал операторы break.

2 голосов
/ 28 февраля 2011

цикл do / while гарантирует, что тело do / while будет выполнено хотя бы один раз, после чего проверяется условие цикла.

С другой стороны, if гарантирует, что код не будетвыполняется вообще, если условие не выполняется.

Внутренне для них нет никакой разницы, за исключением точки, в которой проверяются условия цикла.

0 голосов
/ 28 февраля 2011

, если / else больше подходит для проверки одного или нескольких логических условий без необходимости циклического или рекурсивного выполнения -

do / while больше подходит для итерации по данным или группам данных, пока не будет получен желаемый результатдостигли.

если вы собираетесь использовать операторы break, это зависит от того, требуется ли вам рекурсивное выполнение действия - в противном случае может лучше подойти / else.

...