Цикл do-while

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

Тренажер PHP

Цикл `do-while` — это особый брат-близнец цикла `while`. Его главная фишка в том, что он гарантирует как минимум однократное выполнение кода, потому что условие проверяется уже *после* первой итерации, а не до нее. Это делает его незаменимым в ситуациях, когда нужно сначала совершить действие, а потом уже решать, стоит ли его повторять. Например, запросить у пользователя ввод и только потом проверить, корректен ли он. В этом тренажере мы разберем синтаксис `do-while`, его ключевые отличия от `while`, научимся избегать частых ошибок и применять его на практике. Готовьтесь, будет интересно!

Список тем

Базовый синтаксис do-while

id: 38948_task_dw_1

Давайте начнем с основ. Цикл `do-while` состоит из ключевого слова `do`, блока кода в фигурных скобках `{}` и условия `while()` в конце. Заполните пропуски, чтобы создать работающий цикл, который выведет число 1.

Заполните пропуски
<?php

$i = 1;

input1S {
    echo $i;
} input2S ($i < 1);

?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Найдите пропущенный символ

id: 38948_task_dw_2

В отличие от `while` и `for`, синтаксис `do-while` требует обязательного символа в конце всей конструкции. В этом коде он пропущен, что вызовет синтаксическую ошибку. Найдите и исправьте строку с ошибкой.

Найдите ошибку и исправьте
<?php
$i = 1;
do {
    echo $i;
    $i++;
} while ($i <= 3)
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Главное отличие do-while

id: 38948_task_dw_3

В этом коде условие цикла `$i < 10` изначально ложно, так как переменная `$i` равна 10. Что выведет этот скрипт? Внимательно подумайте, когда именно `do-while` проверяет условие.

Выберите правильный вариант ответа
<?php

$i = 10;
do {
    echo "Цикл выполнился!";
} while ($i < 10);

?>
Сообщения
Проверить
Показать подсказку

Соберите цикл для обратного отсчета

id: 38948_task_dw_4

Из предложенных фрагментов кода соберите работающий скрипт, который будет вести обратный отсчет от 3 до 1. Некоторые фрагменты кода лишние и не должны использоваться.

Перетяните в правильном порядке строки из одного блока в другой
} while ($i > 0);
echo $i . " ";
<?php
$i--;
$i = 3;
do {
while ($i > 0) {
$i++;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Предскажите итоговое значение

id: 38948_task_dw_6

Проанализируйте этот цикл. Переменная `$balance` уменьшается на 15 в каждой итерации. Цикл продолжается, пока баланс строго больше нуля. Какое значение будет выведено на экран после завершения цикла?

Что должно получиться?
<?php

$balance = 40;
do {
    // echo "Current balance: $balance\n";
    $balance -= 15;
} while ($balance > 0);

echo $balance;

?>
Сообщения
Проверить
Показать подсказку

Проверка пользовательского ввода

id: 38948_task_dw_7

Цикл `do-while` отлично подходит для того, чтобы запрашивать у пользователя ввод, пока он не станет корректным. Заполните пропуски, чтобы цикл продолжался до тех пор, пока пользователь не введет число больше 100.

Нужно правильно расставить в пропуски предложенные варианты
<?php
// Для этого примера представим, что readline() возвращает 50, затем 99, а потом 101.
// $input = readline("Введите число больше 100: ");

$input = 0; // Инициализация
do {
    // В реальном коде здесь была бы функция ввода
    // $input = (int)readline("Введите число больше 100: ");
    echo "Попытка... ";
    $input += 50; // Имитация ввода
} while (input1S);

echo "Принято: " . $input;

?>
$input <= 100
$input > 100
$input == 100
$input < 100
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
🚀 Визуализатор кода
0 / 0
Скорость:
Режим:
💡 Что происходит?
Загрузите пример для начала...
🤔
Проверка знаний
История шагов
Готов
НайтиКурс.Ру