Урок №47. Блоки стейтментов (составные операторы)

  Юрий  | 

  |

  Обновл. 13 Сен 2021  | 

 55510

 ǀ   4 

На этом уроке мы рассмотрим блоки стейтментов в языке С++.

Блоки стейтментов

Блоки стейтментов (или «составные операторы») — это группа стейтментов, которые обрабатываются компилятором как одна инструкция. Блок начинается с символа { и заканчивается символом }, стейтменты находятся внутри. Блоки могут использоваться в любом месте, где разрешено использовать один стейтмент. В конце составного оператора точка с запятой не ставится.

Вы уже видели пример блоков при написании функций, поскольку тело функции является блоком:

Вложенные блоки


Хотя функции не могут быть вложены в другие функции, блоки могут быть вложены в другие блоки:

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

Блоки и операторы if

Один из наиболее распространенных вариантов использования блоков связан с операторами if. По умолчанию оператор if выполняет один стейтмент, если условие имеет значение true. С помощью блока мы можем сделать так, чтобы выполнялось сразу несколько стейтментов, если условие имеет значение true, например:

Если ввести число 3, то программа выведет:

Enter an integer: 3
3 is a positive integer (or zero)
Double this number is 6

Если ввести число -4, то программа выведет:

Enter an integer: -4
-4 is a negative integer
The positive of this number is 4

Количество уровней вложенности блоков


Можно даже размещать вложенные блоки внутри других вложенных блоков:

Уровень вложенности функции (или «глубина вложенности функции») — это максимальное количество блоков, которые могут находиться в любой точке функции (включая внешний блок). В вышеприведенной функции main() есть 4 блока, но уровень вложенности равен 3.

По факту, ограничений на количество вложенных блоков нет. Однако не рекомендуется делать больше 3 уровней вложенности (максимум 4). Если ваша функция нуждается в большем количестве уровней вложенности, то эту функцию лучше разбить на несколько подфункций!

Заключение

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


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (497 оценок, среднее: 4,93 из 5)
Загрузка...

Комментариев: 4

  1. Максим:

    Хотелось бы ещё осветить смысл символа ; после оператора.
    И его тонкости, например, почему if(cond) expr1; else expr2; будет ошибкой.

  2. Александр:

    Как будь-то если написать

    без этих скобок — ничего не заработает..

    1. Владимир:

      Заработать-то заработает, да вот только не так, как хотел бы программист.

      1. Алексей:

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

        Скажем таких блоков 500, вложены по 3-4.

        Догадайся, что это скобка закрывает. Не догадаешься, писать надо в один ряд их.

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *