наверх

Циклы while, do while, foreach и for

Цикл — это конструкция предназначенная для цикличного выполнения команд в теле цикла, включающая проверку нужно ли это делать(истинность логического выражения). Циклы чаще всего используются для вывода статей, новостей, комментариев и т.д.

Цикл с предусловием while

Цикл while выполняет один и тот же участок кода, пока соблюдается некоторое условие. Если условие ложно, то конструкция прекращает свою работу, иначе выполняет очередную итерацию и начинает все с начала. Синтаксис цикла выглядит так:

Где, условие — логическое выражение, а инструкция — инструкция тела цикла. В теле цикла постоянно должны производиться какие-то действия, которые будут изменять значения условия, иначе цикл «зациклиться». Если выражение с самого начала ложно, то цикл не выполнится ни разу.

Цикл while имеет альтернативный синтаксис:

Цикл с постусловием do while

В отличие от предыдущего цикла, данный цикл проверяет истинность условия не до,а после каждого подхода. Благодаря этому тело цикла выполняется хотябы один раз.Синтаксис цикла:

После очередной итерации проверяется, истинно ли условие, и, если это так, управление передается вновь на начало цикла, в противном случае цикл заканчивает работу.

Цикл for

Цикл for используется для выполнения выражений определенное число раз. Его часто называют циклом со счетчиком. Синтаксис цикла:

Суть работы цикла такова:

  • Инициализирующие команды — присваивают переменной-счетчику начальное значение; 
  • Условие — содержит логическое выражение. Пока логическое выражение возвращает значение true, выполняются выражения внутри цикла; 
  • Команды после прохода задают изменение переменной-счетчика при каждой итерации.

Последовательность работы цикла for:

  • Инициализирующим переменным присваивается начальное значение.
  •  Проверяется условие. Если оно истинно, выполняются выражения внутри цикла, а в противном случае выполнение цикла завершается.
  • Переменная-счетчик изменяется на указанную величину.
  • Переход к п. 2. Цикл выполняется до тех пор, пока условие не вернет false.

Пример использования цикла:

Для данного цикла существует альтернативный синтаксис:

Цикл foreach

Цикл foreach используется для перебора элементов массивов. Синтаксис цикла выглядит следующим образом:

Рассмотрим следующий пример:

Где $name переменная по которой мы будем обращаться к элементам массива. Теперь цикл foreach пройдет по всему массиву $men и выведет каждый элемент этого массива на экран.

Также использовав цикл foreach можно получить ключи всех элементов массива.

Теперь мы увидим и элементы и их ключи. Вместо $name и $key можно использовать любые другие названия, имена этих переменных задаются произвольно.

Инструкции break и continue

Инструкция break осуществляет немедленный выход их цикла. Она может задаваться с одним необязательным параметром — числом которое указывает, из какого вложенного цикла должен быть произведен выход. По умолчанию используется 1(то есть выход из текущего цикла). Рассмотрим следующий пример:

В данном примере мы оставили условие цикла пустым, и значит, что цикл будет продолжаться бесконечно. Однако использование оператора break прерывает его выполнение, как только 100 строк уже напечатано.

Обратите внимание, оператор break прерывает выполнение цикла, а не программы, то есть далее будет выполнено выражение, следующее сразу за циклом.

Инструкцию break удобно использовать для циклов-поисков: как только очередная итерация удовлетворяет условию, цикл заканчивается.

Оператор continue позволяет перейти к следующей итерации, пропустив текущую. Например, выведем все числа от 1 до 10, кроме чисел от 5 до 8 включительно:

В результате видим, что числа от 5 до 8 не вывелись, при этом цикл продолжал работу и показал нам все числа до 5 и после 8.