Мы кратко рассказали о том, как использовать цикл пока в нашем предыдущем примере, чтобы многократно спрашивать имя человека, когда он входит в чат. Сегодня давайте подробнее рассмотрим некоторые трюки, которые мы можем реализовать при использовании цикла.

Будьте простыми и короткими

Если вы помните из нескольких статей назад, мы упоминали, что программисты любят, чтобы их код был коротким. Мы представили идею, называемую цепочкой действий (инструкций), и мы можем сделать то же самое здесь и с циклами «пока». Рассмотрим следующее.

<?php
    While ($names=readline('What is your name: '))
    {
        echo 'Good morning master '.$names;
    }
?>

Эти коды будут делать то же самое, о чем мы говорили в предыдущей статье, — спрашивать имя у человека, когда он/она входит в комнату.

Пояснение кода:

Мы знаем, что все, что определено в скобках после ключевого слова «пока», является условием, которое запускает цикл.

Когда мы помещаем инструкцию чтения пользовательского ввода в качестве условия, мы просто говорим циклу начать работу, когда пользователь закончит вводить имя.

Точнее, мы получаем ввод от пользователя и присваиваем это значение переменной с именем «names». Это действие присваивания может привести только к одному результату, а именно к «успешному присвоению значения переменной», что также переводится как «истина». Поверьте, компьютеры никогда не ошибаются при присвоении значения переменной :)

Если пользователь ничего не введет в качестве имени, присвоение не произойдет. Если присваивание не произошло, статус «успех» не будет создан, и, следовательно, у цикла не будет причин для запуска.

Довольно просто, верно?

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

Нам нужен способ остановить цикл

Пока что наша программа будет работать вечно, потому что нет никаких условий для остановки компьютера. Нам нужно наложить ограничение на условие остановки цикла.

Предполагая, что мы хотим, чтобы программа остановилась после того, как в комнату войдет только определенное количество людей, скажем, 5? Тогда нам нужно, чтобы этот цикл выполнялся только 5 раз и после этого переставал брать имена людей. Это ограничение, которое мы накладываем на условие зацикливания.

Для этого нам сначала нужно что-то, чтобы отслеживать количество людей, входящих в комнату, счетчик, если хотите.

Зная, что мы собираемся сохранить что-то изменяющееся и использовать его позже, вы наверняка подумали бы об использовании переменной для задания. Это точно.

Как мы говорили ранее, чтобы использовать переменную, нам нужно сначала объявить о ее доступности для компьютера, инициализировать переменную в 1, так как мы начинаем считать с 1. Затем нам нужно увеличивать эту переменную-счетчик на 1 каждый раз, когда цикл выполняется и останавливается, когда достигает 5. Таким образом, наша новая программа будет выглядеть следующим образом.

<?php
    $counter=1;
    While ($counter <= 5)
    {
        echo 'Good morning master '.readline('What is your name: ');
        $counter = $counter + 1;
    }
?>

Пояснение кода:

Сначала мы объявляем переменную и присваиваем (инициализируем) ее значение 1

Условие запуска «цикла while» теперь определяется как «когда значение $counter меньше или равно 5». По сути, мы проводим сравнение и используем результат этого сравнения в качестве условия для запуска компьютера в цикле.

С точки зрения компьютера сравнения выполняются с помощью таких знаков, как «» для меньше, «» для больше, «‹= >» для меньше или равно, «›=» для больше или равно и «==» для равно. Эти знаки называются "логическими операторами".

Таким образом, «($counter ‹= 5)» в сознании компьютера означает «проверить, меньше или равно ли значение $counter значению 5», и сообщить тому, кто заказывает проверить либо true для «да», либо false для «нет».

«$counter = $counter + 1» снова обрабатывается справа налево и транслируется как; во-первых, мы добавляем значение 1 к тому, что уже находится внутри переменной $counter, затем мы присваиваем этот результат операции самой переменной.

Нам нужна эта строка кода, потому что она изменяет значение переменной $counter с шагом 1. Таким образом, оно может в конечном итоге достичь 5 и вызвать остановку цикла. Без него цикл никогда не закончится.

Теперь наша маленькая программа будет запрашивать имена только у 5 человек и завершится, как только пятый человек введет свое имя.

Чтобы завершить эту статью, позвольте мне представить еще одну вещь для удобства написания кода. Вместо того, чтобы писать «$counter = $counter + 1», мы можем просто написать «$counter++». Он делает то же самое и был разработан только с целью упрощения написания кода.

Резюме

  • Мы можем связать операции и использовать результат действий в качестве условия для цикла.
  • Мы останавливаем цикл, накладывая ограничение на условие с помощью логических операторов
  • Логические операторы: «›», «‹», «==», «›=», «‹=».
  • Переменные изменяются аналогично их назначению с помощью знака «=». Присвоение результата справа от знака «=» левой части от него
  • Чтобы упростить дополнительные действия, мы можем переписать $counter = $counter + 1 в $counter++.

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