К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

1. Управления потоком выполнения программ

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

Но на практике это не всегда может быть то, что нам нужно. Например, если мы попросим пользователя сделать выбор между + и /, а пользователь введет некорректный символ (например, *), то в идеале нам нужно было бы попросить его ввести символ еще раз. Но это невозможно в линейной программе. Кроме того, бывают случаи, когда нужно выполнить что-то несколько раз, но количество этих повторений наперед неизвестно. Например, если бы мы хотели вывести все целые числа от 0 до числа, которое введет пользователь, то в линейной программе мы бы не смогли это сделать, не зная наперед число, которое введет пользователь.

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

Остановка

Самый простой оператор управления порядком выполнения программы — это остановка, которая сообщает программе немедленно прекратить свое выполнение. В языке C++ остановка осуществляется с помощью функции еxit(), которая определена в заголовочном файле сstdlib. Функция exit() принимает целочисленный параметр, который затем возвращает обратно в операционную систему в качестве кода выхода. Например:

#include <iostream>
#include <cstdlib> // для функции exit()
int main()
{
    std::cout << 5;
    exit(0); // завершаем выполнение программы и возвращаем 0 обратно в операционную систему
    // Следующие стейтменты никогда не выполнятся
    std::cout << 3;
    return 0;
}

Прыжок

Следующим оператором управления порядком выполнения программы является прыжок (или «переход»). Он безоговорочно сообщает компилятору во время выполнения перейти от одного стейтмента к другому, т.е. выполнить прыжок. Ключевые слова goto, break и continue являются разными типами прыжков, об их различиях мы поговорим несколько позже.

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

 


Предыдущая        В начало страницы       Следующая
1