Цикл While
Вкратце
while (условие) {
// код, который будет повторяться
// пока условие истинно
}
Компьютеры могут не уставая повторять действия десятки, сотни, тысячи раз. В программировании для повторений используются циклы.
Напишем функцию с циклом, который будет выводить на экран числа от 1 до числа-аргумента:
<?php
function printNumbers($lastNumber)
{
$i = 1;
while ($i <= $lastNumber) {
print_r("{$i}\n");
$i = $i + 1;
}
print_r('finished!');
}
printNumbers(3);
1
2
3
finished!
Конструкция читается так: «делать то, что указано в теле цикла пока истинно условие (предикат) $i <= $lastNumber
».
Цикл while
состоит из трех элементов:
- Ключевое слово
while
. - Предикат в скобках после
while
. - Блок кода в фигурных скобках (тело цикла).
Каждое выполнение тела называется итерацией. В нашем примере вызов printNumbers(3)
породил три итерации, на каждой из которых была выведена на экран переменная $i
.
Самое главное в цикле — завершение (выход). Процесс, который порождает цикл, должен в конце концов остановится. Ответственность за остановку полностью лежит на программисте.
Обычно задача сводится к введению переменной, называемой «счётчик». Сначала он инициализируется, то есть ему задаётся начальное значение. В нашем примере это строчка $i = 1
. Затем в условии цикла проверяется, не достиг ли счетчик своего предельного значения.
В нашем примере предельное значение определяется аргументом функции. Если условие цикла не выполнено, то тело не выполняется и интерпретатор двигается дальше, выполняя инструкции после цикла. Но если условие цикла истинно, то выполняется тело, в котором находится ключевой элемент остановки — изменение счетчика. Обычно его делают в конце тела, и это изменение — одно из редких мест, где невозможно обойтись без переменной. В нашем примере за изменение отвечает строчка $i = $i + 1
.
Задание
Модифицируйте функцию printNumbers
, так, чтобы она выводила числа в обратном порядке. Для этого нужно идти от верхней границы к нижней. То есть, счетчик должен быть инициализирован максимальным значением, а в теле цикла его нужно уменьшать до нижней границы.
Пример вызова и вывода:
<?php
printNumbers(4);
// => 4
// => 3
// => 2
// => 1
// => finished!
Определения
Цикл While — инструкция для повторения кода пока удовлетворяется какое-то условие.
Упражнение доступно только авторизованным пользователям.
Пожалуйста, авторизуйтесь с помощью учётной записи GitHub, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт на GitHub.