Поток управления программы

Английское название потока управления программой: Flow of Control

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


Классификация потоков управления

Так называемый поток управления (flow of control) — это путь выполнения кода программы.

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

Операторы потока управления позволяют изменить порядок выполнения кода.

Существует много операторов управления, мы подробно разберем их на последующих занятиях. На данном уроке дадим общее представление о потоке управления.

В C# выделяют три основные группы потоков управления:

Последовательное выполнение является основой. Три группы реализуют логику ветвления, итерации и перехода;

  1. Операторы выбора (Selection statements)
  2. Операторы итерации (Iteration statements, циклы)
  3. Операторы перехода (Jump statements)

Для каждой группы существует несколько вариантов синтаксиса:


Операторы выбора

Основное назначение: выполнять определенные участки кода при соблюдении условий, пропуская остальные.

  • if выполняет блок кода при истинности условия
  • if–else выполняет одну из двух ветвей кода
  • switch множественное ветвление, выбирает один из наборов кода для исполнения

Операторы итерации

Основное назначение: повторять фрагмент кода, пока условие истинно

  • for проверяет условие перед запуском тела цикла
  • while проверяет условие перед запуском тела цикла
  • do while сначала выполняет код, потом проверяет условие
  • foreach обходит все элементы коллекции по одному

Операторы перехода

  • break немедленно завершает текущий цикл
  • continue прерывает текущую итерацию, пропускает оставшийся код и переходит к следующему повторению цикла
  • goto передает управление к помеченному оператору
  • return завершает текущий метод и возвращает управление в точку вызова

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


class Program
{
    static void Main()
    {

        int age = 18;
        if (age >= 18) //При соблюдении условия выполняется код внутри блока if
        {
            Console.WriteLine("Вы достигли совершеннолетия");
        }

        int score = 85;
        if (score >= 90) //Последовательная проверка условий
        {
            Console.WriteLine("Отлично");
        }
        else if (score >= 80) //Если предыдущее условие не выполнено — проверяем это
        {
            Console.WriteLine("Хорошо");
        }
        else if (score >= 70) //Если первые два условия не выполнены — проверяем это
        {
            Console.WriteLine("Удовлетворительно");
        }
        else if (score >= 60) //Если первые три условия не выполнены — проверяем это
        {
            Console.WriteLine("Зачет");
        }
        else //Выполняется, если ни одно условие не сработало, является запасным вариантом
        {
            Console.WriteLine("Незачет");
        }

        //Цикл for: i начинается с 0, цикл работает пока i меньше 10, после каждого прохода i увеличивается на 1
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(i);
        }

        int sum = 0;
        while (sum < 100) //Тело цикла работает пока sum меньше 100
        {
            sum += 10; //На каждом шаге сумма увеличивается на 10
            Console.WriteLine(sum);
        }

        int count = 5;
        do
        {
            Console.WriteLine("Эта строка выполнится как минимум один раз");
            count++; //count увеличивается на единицу после каждой итерации
        } while (count<5); //Даже при ложном условии тело цикла запустится один раз

        int[] scores = { 90, 80, 70, 60, 50 }; //Массив из пяти элементов
        foreach (var item in scores) //Перебираем все элементы массива, записываем в item до завершения обхода
        {
            Console.WriteLine(item);
        }

    }
}
Code language: JavaScript (javascript)

Вы можете скопировать этот код в Visual Studio и запустить. На следующих занятиях каждый оператор будет рассмотрен по порядку.

Поток управления программы

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

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