Цикл For

Вкратце

for (счётчик; предикат; изменение счётчика) {
    // тело цикла
}

// например
for ($index; $index >= 0; $index--) {
    ...
}

Цикл while идеален для ситуаций, когда количество итераций неизвестно заранее, например, при поиске простого числа. Когда количество итераций известно, предпочтительнее использовать цикл for.

Посмотрим реализацию переворота строки через цикл for:

<?php

function reverseString($str)
{
    $index = strlen($str) - 1;
    $result = '';

    for ($index; $index >= 0; $index--) {
        $currChar = $str[$index];
        $result = "{$result}{$currChar}";
    }

    return $result;
}

Можно читать так: «цикл с индексом $index повторяется пока $index >= 0 и после каждого шага уменьшает $index на 1».

В определении цикла for есть:

  1. начальное значение счетчика
  2. предикат-условие повторения циклов
  3. описание того, как счётчик меняется после каждого шага

В остальном принцип работы точно такой же, как у цикла while.


Давайте рассмотрим ход движения программы на примере вызова функции с простой строкой:

reverseString('cat');

В строке 3 символа, поэтому в цикле будет 3 итерации:

Для удобства одинаковыми цветами отмечены одинаковые значения. Как видите, счётчик в цикле меняется после шага.

Задание

Реализуйте функцию sumOfSeries, которая считает сумму ряда целых чисел. Ряд задаётся двумя числами — начальным и конечным.

Функция принимает два аргумента-числа и возвращает сумму ряда. Например, для аргументов 4, 7 сумма будет 4 + 5 + 6 + 7 = 22.

<?php

sumOfSeries(1, 2); // => 3
sumOfSeries(1, 3); // => 6
sumOfSeries(4, 7); // => 22

Если начальное и конечное числа равны, то результатом будет то же число:

<?php

sumOfSeries(1, 1); // => 1

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь с помощью учётной записи GitHub, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт на GitHub.