0 знаков
12. Циклы while и do-while в PHP
КраткоОсновы циклов в PHP
- Циклы начинаются с ключевого слова, указывающего интерпретатору PHP тип цикла.
- Цикл
while
работает, пока условие в скобках возвращаетtrue
.- Важно увеличивать счётчик, чтобы избежать бесконечного выполнения цикла.
Примеры циклов
- Цикл
while
используется для вывода чётных чисел.- Цикл
do-while
выполняется минимум один раз и увеличивает значение переменной перед проверкой условия.- Перебор индексируемого массива с использованием циклов упрощает манипуляции с элементами массива.
Все циклы начинаются с ключевого слова, указывающего интерпретатору PHP, какой цикл используется. Цикл while
начинается с ключевого слова while
, а в круглых скобках пишется условие. Пока выражение в условии возвращает true
, цикл будет работать.
<?php
$counter = 0; // Переменная счетчик
while ($counter < 10) { // Цикл будет выполнятся пока переменная
// $counter меньше чем 10
echo $counter; // Выводим на экран значения от 0 до 9
$counter++; // Увеличиваем счетчик
}
?>
ВажноНе забывайте увеличивать счётчик, иначе цикл будет выполняться бесконечно и всё у вас зависнет.
К счетчику не обязательно прибавлять единицу. Давайте для примера выведем только чётные числа:
<?php
$counter = 2;
while ($counter < 10) {
echo $counter; // Выводим на экран значения 2, 4, 6, 8.
$counter += 2; // Увеличиваем счетчик
}
?>
Обратный отсчет
Бывают ситуации, когда нужно запускать цикл в обратном порядке:
<?php
$counter = 10;
while ($counter >= 1) {
echo $counter; // Выводим на экран значения от 10 до 1.
$counter--; // Уменьшаем счетчик
}
?>
Цикл do-while
Цикл do-while
перед проверкой условия запускает набор операторов, заключенных в фигурных скобках. Цикл всегда выполняется как минимум один раз.
<?php
do {
// В этом блоке пишем код, который нужно зациклить
echo $counter;
$counter++;
} while ($counter < 10); // Условие
?>
Код в этом цикле выводит значение переменной $counter
, а затем, используя оператор ++
, значение переменной $counter
увеличивается на 1
.
Поскольку блок кода выполняется перед условием, то вывод переменной $counter
и увеличение ее на 1
произойдет по крайней мере один раз.
Если значение переменной $counter
равно 3
, то в результате мы получим 3456789
. Если значение переменной $counter
равно 1
, то в результате мы получим 123456789
.
Перебор индексируемого массива
В уроке про массивы мы вручную манипулировали его элементами. Проще и быстрее производить различные операции с помощью циклов. Давайте посмотрим как это делать.
<?php
$arr = [1, 2, 3, 4, 5];
$length = count($arr); // Узнаем длину массива
$counter = 0; // Создаем счётчик
while ($counter < $length) {
print_r($arr[$counter]); // Выведет 1, 2, 3, 4, 5
$counter++; // Увеличиваем счётчик
}
?>
Мы создали массив, узнали его длину и создали счётчик, который будет использоваться для обращения к индексам массива. Как вы могли заметить, мы создали слишком много вспомогательных переменных, что не очень удобно. Пока без этого никуда.
Давайте перемножим все значения в массиве $arr
:
<?php
$arr = [1, 2, 3, 4, 5];
$length = count($arr);
$counter = 0;
$result = 1; // Создали переменную для хранения результата.
while ($counter < $length) {
$result *= $arr[$counter]; // Умножаем все значения.
$counter++; // Увеличиваем счётчик
}
echo $result; // Распечатает 120
?>
Мы рассмотрели две конструкции цикла while
, которые можно использовать всегда и везде. Есть конечно и более удобные циклы, которые часто используются в работе, они более сложные, но гибкие. В следующем уроке мы их рассмотрим.
Задания
1. Напишите код, который принимает массив чисел и возвращает сумму всех положительных элементов этого массива.
2. Напишите скрипт, который выводит массив в обратном порядке.
3. Напишите код, который считывает массив чисел, находит минимальное и максимальное значения и выводит их.
4. Напишите код, который считывает список студентов в ассоциативном массиве и выводит их.
5. Найдите произведение целых чисел от 1
до 20
.
6. Найдите сумму четных чисел от 2
до 100
.
7. Найдите сумму нечетных чисел от 1
до 99
.
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ