Что такое пустой оператор и что он делает
easy

Что такое пустой оператор и что он делает

Он заполняет пустоту и имитирует бурную деятельность

Обычно каждая команда в любом языке программирования делает что-то полезное: создаёт переменные, присваивает значения, организует циклы и так далее. Но есть ещё пустые операторы — они ничего не делают, но ими часто пользуются. Рассказываем, как это работает и зачем применяется.

Что такое пустой оператор

Пустой оператор — это оператор, который не выполняет никакого действия. Когда компьютер встречает такое, он пропускает его и выполняет команды дальше. 

Иногда бывает так, что программисту нужно сделать цикл или функцию, в которых пока ничего нет — например, чтобы быстро написать базовую логику, а потом заняться деталями. Если в Python мы попробуем создать пустую функцию и дальше продолжить писать основной код, то получим ошибку:

Что такое пустой оператор

Python выдал ошибку IndentationError — он увидел, что мы объявили функцию, и ждал её содержимое на новой строке после отступа. С точки зрения компьютера, мы поступили неправильно: команда, которая относится к функции, записана неверно.

Чтобы выйти из такой ситуации, используют пустой оператор — в Python это команда pass. Её можно вставлять в коде в любое место, где требуется какое-то действие. Добавим эту команду в функцию и посмотрим на результат:

Что такое пустой оператор

То же самое происходит и в циклах: если нам нужен цикл, который пока ничего не делает, достаточно добавить в него pass вместо настоящих команд:

for i in range(10): pass

Где ещё применяется пустой оператор

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

function onClickFunction () {
// здесь потом появится код
}

Для синхронизации потоков и разрешения блокировок. В Java есть метод wait() — он используется для приостановки потока до тех пор, пока не будет получен сигнал о его возобновлении. В этом случае пустой оператор можно использовать как условие ожидания такого сигнала:

synchronized (lock) {
    while (!condition) {
        try {
            // ожидание сигнала
            lock.wait();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    // пустой оператор
}

В каких языках он есть

Пустой оператор есть почти во всех языках программирования, но выглядит он по-разному в зависимости от синтаксиса. Например, в C, C++ и JavaScript это точка с запятой, в Java этим могут быть фигурные скобки, а в Ассемблере это NOP.

Что плохого в пустом операторе

Пустой оператор — временное решение, поэтому как только его можно заменить на настоящие команды, это сразу нужно сделать. Дело в том, что иногда такой оператор может привести к таким ситуациям:

  • У переменной могут появиться неопределённые значения. Если пустой оператор используется в цикле, то он никак не повлияет на переменную цикла или переменную в условии цикла. Это может привести к непредсказуемым последствиям.
  • Сложность отладки — с пустым оператором не всегда понятно, где именно возникает ошибка.
  • Нечитаемый код — если в программе много пустых операторов, то сложно понять, что именно делает код и как устроена внутренняя логика работы.

Что будет, если написать программу только из одних пустых операторов?

Так сделать, конечно, можно, но зачем?

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

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
easy