PHP - Do...While Цикл: Пособие для начинающих

Добро пожаловать, стремящиеся к кодированию! Сегодня мы погружаемся в захватывающий мир PHP циклов, конкретно цикл do...while. Как ваш доброжелательный соседний компьютерный учитель, я здесь, чтобы помочь вам понять этот концепт с множеством примеров и объяснений. Так что достаньте свои виртуальные блокноты и lets get looping!

PHP - Do…While Loop

Что такое Цикл do...While?

Прежде чем мы перейдем к примерам, давайте поймем, что такое цикл do...while. Представьте, что вы играете в игру, где вам нужно продолжать кидать кости, пока не выпадет шестерка. Вы кинете кость хотя бы раз, правда? Именно так работает цикл do...while!

Цикл do...while выполняет блок кода как минимум один раз перед проверкой, истинна ли условия. Если условие истинно, он продолжает выполнять блок многократно до тех пор, пока условие не станет ложным.

Теперь давайте посмотрим на синтаксис:

do {
// Код для выполнения
} while (condition);

Пример 1: Основной Цикл do...While

Давайте начнем с простого примера:

<?php
$i = 1;
do {
echo "Число: $i <br>";
$i++;
} while ($i <= 5);
?>

Что происходит здесь?

  1. Мы�始化 переменную $i со значением 1.
  2. Цикл начинается с do, и мы выводим текущее значение $i.
  3. Мы увеличиваем $i на 1, используя $i++.
  4. После закрывающей скобки у нас есть условие while. Оно проверяет, меньше ли $i или равно 5.
  5. Если условие истинно, цикл продолжается; если ложно, он останавливается.

Вывод:

Число: 1
Число: 2
Число: 3
Число: 4
Число: 5

Пример 2: Цикл do...While с Вводом Пользователя

Давайте сделаем вещи более интерактивными! Мы создадим простую угадайку:

<?php
$secretNumber = 7;
do {
$guess = (int)readline("Угадай число (от 1 до 10): ");
if ($guess < $secretNumber) {
echo "Слишком низко! Попробуйте еще раз.\n";
} elseif ($guess > $secretNumber) {
echo "Слишком высоко! Попробуйте еще раз.\n";
}
} while ($guess != $secretNumber);

echo "Поздравляю! Вы угадали!";
?>

В этом примере:

  1. Мы устанавливаем секретное число (7 в этом случае).
  2. Цикл просит пользователя угадать число.
  3. Он предоставляет обратную связь, если предположение слишком низкое или слишком высокое.
  4. Цикл продолжается до тех пор, пока не будет угадано правильное число.

Этот пример демонстрирует, как циклы do...while могут быть использованы для проверки ввода и создания простых игр!

Пример 3: Чтение Файла с Циклом do...While

Давайте рассмотрим более практический пример - чтение строк из файла:

<?php
$file = fopen("sample.txt", "r");

do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);

fclose($file);
?>

Что происходит здесь:

  1. Мы открываем файл "sample.txt" в режиме чтения.
  2. Цикл читает строку из файла с помощью fgets().
  3. Если строка не false (т.е. не конец файла), мы выводим ее.
  4. Цикл продолжается до тех пор, пока не будет достигнут конец файла.
  5. Наконец, мы закрываем файл.

Этот пример показывает, как циклы do...while могут быть полезны для файловых операций!

Уменьшение Цикла "do...while"

Теперь давайте сосчитаем backwards используя цикл do...while:

<?php
$countdown = 5;

do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);

echo "Blast off! ?";
?>

В этом космическом обратном отсчете:

  1. Мы начинаем с $countdown, установленного в 5.
  2. Цикл выводит текущее значение обратного отсчета.
  3. Мы уменьшаем $countdown с помощью $countdown--.
  4. Цикл продолжается до тех пор, пока $countdown больше 0.
  5. Как только мы достигаем нуля, мы взлетаем!

Вывод:

T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Blast off! ?

Пройти Строку в Обратном Порядке

Давайте проявим творчество и перевернем строку с помощью цикла do...while:

<?php
$str = "Hello, World!";
$length = strlen($str) - 1;

do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>

Что происходит здесь?

  1. Мы начинаем со строки "Hello, World!".
  2. Мы получаем последний индекс строки (длина - 1).
  3. Цикл выводит каждый символ, начиная с конца.
  4. Мы уменьшаем индекс в каждой итерации.
  5. Цикл продолжается до тех пор, пока мы не напечатаем первый символ.

Вывод:

!dlroW ,olleH

Вложенные "do...while" Циклы

Наконец, давайте рассмотрим вложенные do...while циклы с забавным рисунком:

<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>

Давайте разберем это:

  1. Внешний цикл контролирует количество строк (5 в этом случае).
  2. Внутренний цикл выводит звезды в каждой строке.
  3. Количество звезд в каждой строке равно номеру строки.
  4. Мы используем <br>, чтобы перейти к следующей строке после каждой строки.

Вывод:

*
* *
* * *
* * * *
* * * * *

Таблица Методов

Вот таблица, резюмирующая методы, которые мы использовали в наших примерах:

Метод Описание
echo Выводит одну или несколько строк
readline Читает строку из ввода пользователя
fopen Открывает файл или URL
fgets Получает строку из указателя файла
fclose Закрывает открытый файловый указатель
strlen Возвращает длину строки

И вот оно,朋友们! Мы прошлись по всем аспектам цикла do...while в PHP. Помните, что практика делает мастера, так что продолжайте программировать и экспериментировать с этими циклами. Before you know it, you'll be looping circles around your coding challenges! Happy coding! ??

Credits: Image by storyset