Циклы и условия

Циклы и условия — ключевые инструменты в программировании. Поэтому стоит рассмотреть еще несколько примеров.

Пример 1: Запуск цикла при условии

Задача: написать функцию shouter, которая принимает строку и, если в строке больше 5 символов, выводит её на экран 100 раз. Если в строке 5 символов или меньше, то функция ничего не делает.

Начнём писать функцию:

<?php

function shouter($str)
{

}

Как вы наверное догадались, чтобы вывести строку 100 раз на экран, понадобится цикл. Но это нужно только в случае, если строка больше 5 букв.

Значит, нужно начать с создания условия:

<?php

function shouter($str)
{
    $length = strlen($str);

    if ($length > 5) {

    }
}

Внутри фигурных { } скобок после if будет код, который исполнится только при условии $length > 5. Здесь будет цикл для повторения 100 раз.

Напомним стратегию для создания подобных циклов:

  1. Создать счётчик и задать ему начальное значение.
  2. Сделать цикл, который будет повторяться пока счётчик не дошёл до какого-то конечного значения.
  3. В теле цикла выполнять нужное действие (в нашем случае — вывод на экран) и обновлять счётчик.

Нам нужно 100 повторений, поэтому сделаем счётчик со значением 0 и будем увеличивать его на 1 каждый шаг, и так до тех пор пока счётчик не станет равным 100.

<?php

function shouter($str)
{
    $length = strlen($str);

    if ($length > 5) {
        $counter = 0;
        while ($counter !== 100) {
            print_r($str);
            $counter += 1;
        }
    }
}

$counter += 1 это увеличение счётчика на 1.

Запустим:

shouter('HELLO!');
HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!HELLO!

А теперь давайте модифицируем функцию так, чтобы она возвращала результат, а не выводила его на экран. Воспользуемся тем же приёмом, что был в функции для переворота строки: создадим пустую строку $result и будем её наполнять в цикле, а потом вернём из функции.

<?php

function shouter($str)
{
    $length = strlen($str);
    $result = '';

    if ($length > 5) {
        $counter = 0;
        while ($counter !== 100) {
            $result = $result . $str;
            $counter += 1;
        }
    }

    return $result;
}

Задание

Модифицируйте последний вариант функции shouter, добавив такие условия:

  1. Если длина строки больше 0 и меньше 5, то вернуть оригинальную строку без повторений.
  2. Если длина строки ровно 5 символов, то вернуть строку, повторенную 10 раз.

Условие «длина больше 5, то вернуть строку, повторенную 100 раз» должно сохраниться.

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

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