7.1 – Введение в порядок выполнения программы

Добавлено 22 мая 2021 в 19:52

Когда программа запускается, CPU начинает выполнение с начала main(), выполняет какое-то количество инструкций (по умолчанию в последовательном порядке), а затем, в конце main(), программа завершается. Конкретная последовательность инструкций, выполняемых процессором, называется путем выполнения программы (или, для краткости, просто путем).

Рассмотрим следующую программу:

#include <iostream>
 
int main()
{
    std::cout << "Enter an integer: ";
    
    int x{};
    std::cin >> x;
 
    std::cout << "You entered " << x;
 
    return 0;
}

Путь выполнения этой программы включает в себя строки 5, 7, 8, 10 и 12 в указанном порядке. Это пример прямолинейной программы. Прямолинейные программы при каждом запуске проходят один и тот же путь (выполняют одни и те же инструкции в одном и том же порядке).

Однако часто это не то, что нам нужно. Например, если мы просим пользователя ввести данные, а пользователь вводит что-то недопустимое, в идеале мы хотели бы попросить пользователя сделать другой выбор. В прямолинейной программе это невозможно. На самом деле, пользователь может неоднократно вводить недопустимые данные, поэтому, сколько раз нам может потребоваться попросить его сделать другой выбор, будет неизвестно до времени выполнения.

К счастью, C++ предоставляет ряд различных инструкций управления порядком выполнения, которые представляют собой инструкции, которые позволяют программисту изменять обычный путь выполнения программы. Вы уже видели пример этого с инструкциями if (представленными в уроке «4.10 – Знакомство с инструкциями if»), которые позволяют нам выполнять инструкцию, только если условное выражение истинно.

Когда инструкция управления порядком выполнения вызывает изменение точки выполнения на инструкцию, не идущую последовательно, это называется ветвлением.

Категории инструкций управления порядком выполнения программы

КатегорияЗначениеРеализовано в C++ с помощью
Условные операторыУсловные операторы вызывают выполнение последовательности кода, только если выполняется какое-то условие.if, switch
ПереходыПереходы говорят процессору начать выполнение инструкций в каком-то другом месте.goto
Вызовы функцийВызов функции – это переход в другое место, а затем обратно в исходную точку.вызовы функций
ЦиклыЦиклы говорят программе многократно выполнять некоторую последовательность кода ноль или более раз, пока не будет выполнено какое-либо условие.while, do-while, for, for на базе диапазона
ОстановкиОстановки говорят программе о прекращении работы.std::exit(), std::abort()
ИсключенияИсключения – это особый вид структуры управления порядком выполнения, предназначенный для обработки ошибок.try, throw, catch

В данной главе мы подробно рассмотрим все эти категории, за исключением исключений (ха!), которым мы посвятим целую главу (глава 20).

До этой главы количество вещей, которые вы могли сделать с помощью программ, было довольно ограниченным. Возможность контролировать ход выполнения вашей программы (особенно с помощью циклов) делает возможным множество интересных вещей! Вы больше не будете ограничены игрушечными программами и учебными упражнениями – вы сможете писать программы, которые действительно полезны.

Здесь начинается самое интересное. Итак, приступим!

Теги

C++ / CppLearnCppДля начинающихОбучениеПрограммирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.