Инструкции break и continue
Очень часто, для того чтобы упростить логику какого-нибудь сложного цикла, удобно иметь возможность его прервать в ходе очередной итерации (к примеру, при выполнении какого-нибудь особенного условия). Для этого и существует инструкция break, которая осуществляет немедленный выход из цикла. Она может задаваться с одним необязательным параметром — числом, которое указывает, из какого вложенного цикла должен быть произведен выход. По умолчанию используется 1, т. е. выход из текущего цикла, но иногда применяются и другие значения:
for ($i=0; $i<count($matrix); $i++)
{
for ($j=0; $j<count($matrix[$i]); $j++) {
if ($matrix[$i][$j] == 0) break(2);
}
}
if ($i < 10) echo 'Найден нулевой элемент в матрице!';
Инструкцию break удобно использовать для циклов поисков: как только очередная итерация удовлетворяет условию, цикл заканчивается.
Инструкция continue так же, как и break, работает только "в паре" с циклическими конструкциями. Она немедленно завершает текущую итерацию цикла и переходит к новой (конечно, если выполняется условие цикла для цикла с предусловием). Точно так же, как и для break, для continue можно указать уровень вложенности цикла, который будет продолжен по возврату управления. В основном continue используется в циклах-фильтрах, когда требуется перебрать некоторое количество объектов и выбрать из них только те, которые удовлетворяют определенным условиям. Например, ниже представлен цикл, который печатает только те элементы массива $ files (имена файлов и каталогов), которые являются файлами:
for ($i=0; $i<count($files)/ $i++) {
if ($files[$i] == ".") continue;
if ($files[$i] == "..") continue;
if (is_dir($files[$i])) continue;
echo "Найден файл: $files[$i]<br>";
}
Дата добавления: 2015-08-26; просмотров: 771;