Операторы инкремента и декремента

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

Тренажер PHP

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

Ключевое различие кроется в том, когда именно изменяется значение переменной: до или после ее использования в выражении. Существует две формы: постфиксная (например, `$i++`) и префиксная (например, `++$i`).

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

Список тем

Постфиксный инкремент

id: 38927_task_1

Перед вами базовый пример постфиксного инкремента. Проанализируйте код и определите, какое значение будет выведено на экран в результате выполнения команды `echo`.

Выберите правильный вариант ответа
$a = 10;
echo $a++;
Сообщения
Проверить
Показать подсказку

Префиксный инкремент

id: 38927_task_2

Теперь рассмотрим префиксный инкремент. Внимательно посмотрите на код. Какое значение будет выведено на экран в этом случае? Сравните с предыдущим заданием.

Выберите правильный вариант ответа
$a = 10;
echo ++$a;
Сообщения
Проверить
Показать подсказку

Результат после постфиксного декремента

id: 38927_task_3

В этом коде используется постфиксный декремент, но результат его работы присваивается другой переменной. Какое значение будет храниться в переменной `$result` после выполнения этого кода? Введите только число.

Что должно получиться?
$value = 25;
$result = $value--;
// Какое значение теперь в $result?
Сообщения
Проверить
Показать подсказку

Сопоставьте оператор и его описание

id: 38927_task_4

Каждый оператор инкремента и декремента имеет свой порядок действий. Сопоставьте операторы из левой колонки с правильным описанием их работы из правой колонки.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
`++$a` (Префиксный инкремент)
`$a++` (Постфиксный инкремент)
`--$a` (Префиксный декремент)
`$a--` (Постфиксный декремент)
Возвращает значение `$a`, а затем увеличивает `$a` на 1.
Уменьшает `$a` на 1, а затем возвращает новое значение `$a`.
Увеличивает `$a` на 1, а затем возвращает новое значение `$a`.
Возвращает значение `$a`, а затем уменьшает `$a` на 1.
Сообщения
Проверить
Показать подсказку

Исправьте ошибку в цикле

id: 38927_task_5

Этот цикл `while` должен был вывести числа 0, 1 и 2. Однако из-за ошибки в использовании инкремента он выводит 1, 2 и 3. Найдите и исправьте строку с ошибкой так, чтобы цикл работал как задумано.

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

Завершите конструкцию цикла for

id: 38927_task_6

Цикл `for` состоит из трех частей: инициализация счетчика, условие выполнения и действие после каждой итерации. Заполните пропуск в коде так, чтобы цикл корректно вывел числа от 0 до 4.

Заполните пропуски
// Вывод чисел от 0 до 4
for ($i = 0; $i < 5; input1S) {
    echo $i . " ";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сложное выражение с инкрементом

id: 38927_task_7

Теперь задача посложнее. Операторы инкремента можно комбинировать в одном выражении. Внимательно проследите за изменением переменной `$a` и предскажите, какое значение будет в итоге записано в переменную `$b`. Введите только число.

Что должно получиться?
$a = 5;
$b = ++$a + $a++;
// Что будет в переменной $b?
Сообщения
Проверить
Показать подсказку

Соберите скрипт-счетчик

id: 38927_task_8

Соберите из фрагментов кода небольшой скрипт. Он должен инициализировать переменную `$counter` значением 5, затем в одной строке вывести ее текущее значение и сразу уменьшить (постфиксный декремент), а на следующей строке — вывести новое значение. Некоторые фрагменты лишние.

Перетяните в правильном порядке строки из одного блока в другой
<?php
$counter = 5;
echo $counter--;
echo $counter;
?>
echo --$counter;
$counter = 10;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Комбинация префиксного и постфиксного декремента

id: 38927_task_9

Это финальное и самое сложное задание. Здесь в одном выражении сочетаются оба вида декремента. Проследите за изменением переменной `$x` на каждом шаге и вычислите итоговое значение переменной `$y`.

Что должно получиться?
$x = 10;
$y = ++$x - $x--;
// Какое значение будет в $y?
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру