filmov
tv
PHP для начинающих | Урок#15. Циклы

Показать описание
Циклы необходимы для многократного повторения выполнения некоторого блока инструкций. Одно повторение называют итерацией. Повторяемый блок инструкций называют телом цикла. У цикла также есть условие, при выполнении которого продолжается итерация цикла. Если условие не выполняется - работа цикла завершается и программа переходит к выполнению операторов, следующих после конструкции цикла.
Оператор for принимает три выражения, разделенных точкой с запятой. Первым выражением идет инициализация счетчика. Вторым выражением задается условие при котором цикл продолжает работать. Как только условие перестает выполняться - цикл завершается. Третьим выражением указывается выражение для инкремента счетчика. Далее следует тело цикла, в котором мы просто выводим цифру хранящуюся в переменной счетчика.
Обратите внимание на важный момент: первые два выражения, то есть инициализация и проверка условия, вычисляются перед итерацией цикла, а третье выражение - инкремент - после. Любое из трех выражений или все сразу - необязательны и могут отсутствовать.
Цикл while повторяется до тех пор пока выполняется условие. Для того чтобы цикл не был бесконечным, в теле цикла необходимо изменять значение переменных участвующих в условии, либо в определенный момент делать прямой выход из цикла оператором break.
Цикл do..while работает аналогично. Основным его отличием является то, что условие проверяется не в начале итерации, а в конце. Поэтому цикл while при невыполнении условия не сработает ни разу, а цикл do..while сработает хотя бы один раз.
Цикл foreach осуществляет перебор всех элементов массива. В нем не нужно задавать условий для работы или выхода из цикла, так как неявным условием является достижение конца массива, после которого цикл автоматически завершается.
Внутри цикла можно изменять значения элементов и даже удалять их и добавлять новые. С удалением и добавлением нужно быть осторожными, так как это может привести к неожидаемым результатам.
Операторы break и continue являются операторами прерывания цикла. Break прерывает работу всего цикла, а continue прерывает работу только текущей итерации и передает управление к следующей, пропуская оставшуюся часть кода тела цикла.
Оба эти оператора воздействуют только на конструкции while, do..while, for, foreach и switch. Оператор switch в данном случае не является циклом, но условно его можно считать циклом с единственной итерацией.
Оба оператора break и continue могут принимать необязательный числовой параметр, обозначающий на какое количество вложенностей он воздействует. По умолчанию параметр равен 1 и воздействует только на цикл в котором он непосредственно был использован.