Цикл for: работаем с числами
Всем привет! В этом уроке поговорим об еще одном цикле в PHP – for. Он предназначен для случаев, когда нужно работать с числовыми индексами массивов, или же когда нужно осуществлять перебор чисел. Он поначалу кажется более сложным, чем foreach или while, но на самом деле ничего сложного нет.
Выглядит цикл следующим образом:
<?php
for (expr1; expr2; expr3) {
//loop body
}
Как мы видим, есть 3 выражения, которые находятся в круглых скобках. Давайте разберем каждый из них.
- expr1 – это выражение выполняется только один раз перед началом цикла. Здесь обычно происходит определение переменной.
- expr2 – здесь задаётся условие. Если результат этого выражения – true, то цикл выполнится, иначе – закончится. Например, здесь можно проверить, что переменная меньше какого-либо значения.
- expr3 – тут указывается действие, которое будет выполняться в конце каждой итерации цикла. Например – переменная увеличивается на единицу.
Пример можно? Да пожалуйста!
Давайте теперь рассмотрим реальный пример:
<?php
for ($i = 0; $i < 100; $i++) {
echo $i;
echo '<br>';
}
Данный код выведет все числа от 0 до 99.
- Итак, перед началом цикла мы определяем переменную $i = 0.
- Затем, перед тем как выполнить цикл, мы проверяем, что переменная $i меньше 100. Если это так, то выполнится тело цикла. А именно – выведется текущее значение переменной и выполнится перенос строки.
- Следующим шагом будет выполнение третьего выражения – инкремент переменной $i.
- Теперь снова будет выполнена проверка условия, что $i < 100. И так далее, пока условие не перестанет выполняться. А если быть точнее – пока $i не станет равной 100. Тут цикл завершит работу.
Есть ещё что-то, что нужно знать?
Стоит отметить, что любое из этих выражений может быть и вовсе пустым. Например, уберем инициализацию переменной из первого выражения и сделаем это перед циклом:
<?php
$i = 0;
for (; $i < 100; $i++) {
echo $i;
echo '<br>';
}
Работать такой код будет так же, как и предыдущий вариант. Просто перед началом цикла не будет ничего выполнено.
Можно убрать и третье выражение, которое выполняется после итерации. Перенесем инкремент внутрь тела цикла и результат получится тот же:
<?php
$i = 0;
for (; $i < 100;) {
echo $i++;
echo '<br>';
}
Более того, могут вообще отсутствовать все аргументы. При отсутствии второго аргумента получится бесконечный цикл:
<?php
for (;;) {
//этот код будет выполняться бесконечно
}
Где это применимо?
Цикл for можно применять там, где требуется перебор чисел, или, например, выполнение определенного числа шагов.
Давайте рассмотрим несколько примеров.
Найти все чётные числа от 1 до 50 и вывести их
<?php
for ($i = 1;$i <= 50;$i++) {
if ($i % 2 === 0) {
echo $i;
echo ' ';
}
}
Создать массив из 50 случайных значений
<?php
$randomValues = [];
for ($i = 1;$i <= 50;$i++) {
$randomValues[] = mt_rand();
}
var_dump($randomValues);
Посчитать сумму чисел от 1 до 1000
<?php
$sum = 0;
for ($i = 1;$i <= 1000;$i++) {
$sum += $i;
}
echo $sum;
Как видите, данные задачи элегантно решаются с использованием цикла for. В следующих уроках мы рассмотрим ещё несколько фишек с циклами и научимся реализовывать более сложные алгоритмы. Не забудьте подписаться, чтобы не пропустить новые уроки. А пока поэкспериментируйте с задачами из домашнего задания.
Комментарии