Перейти к содержимому

Операторы выхода и переходов в C++

Операторы выхода и переходов в C++

В этом уроке вы познакомитесь с оператором выхода exit, а также с операторами перехода switch, break и continue в C++. В конце вас ждут практические задачи с решениями и чек-лист для самопроверки.

Главная мысль урока: операторы перехода управляют ходом выполнения программы. Например, exit(0) завершает программу, break прерывает цикл или switch, а continue пропускает текущую итерацию цикла.

Содержание

1. Цели урока

  • Понять, как работает оператор выхода exit.
  • Научиться использовать switch для выбора одного из нескольких вариантов.
  • Освоить операторы break и continue в циклах и конструкции switch.
Что особенно важно запомнить: эти операторы меняют обычный порядок выполнения программы, поэтому применять их нужно осознанно.
↑ К оглавлению

2. Что такое операторы перехода и выхода

Обычно программа выполняет команды по порядку: строка за строкой. Но иногда нужно остановить программу, прервать цикл, пропустить одну итерацию или выбрать одну ветку из нескольких вариантов. Для этого в C++ есть операторы перехода и выхода.

К таким операторам относятся exit, switch, break и continue. Они помогают управлять ходом выполнения программы и делают логику более удобной.

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    int x = -1;

    if (x < 0)
    {
        cout << "Oshibka" << endl;
        exit(0);
    }

    cout << "Programma prodolzhaetsya" << endl;
    return 0;
}
C++

Частая путаница

Запомните: break не завершает всю программу, а только выходит из цикла или switch. Для полного завершения программы используют exit или return из main.
↑ К оглавлению

3. Оператор выхода exit

База

Оператор exit немедленно завершает выполнение программы. После вызова exit остальные строки уже не выполняются.

Число внутри скобок называется кодом завершения. Например, exit(0) обычно означает, что программа завершилась нормально, без ошибки. Значение exit(1) и другие ненулевые значения часто используют для сообщения об ошибке.

Синтаксис

exit(kod_zaversheniya); 
C++

kod_zaversheniya - это целое число.

0 - успешное завершение программы.

1 или другое ненулевое число - завершение из-за ошибки или особой ситуации.

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    int age;
    cin >> age;

    if (age < 0)
    {
        cout << "Vozrast ne mozhet byt otricatelnym" << endl;
        exit(1);
    }

    cout << "Vozrast prinyat" << endl;
    return 0;
} 
C++
Практический вывод: exit удобно использовать, когда нужно сразу остановить программу при критической ошибке.

Типовые задачи

Проверка корректности ввода

Если число меньше нуля, программа завершается сразу.

int number;
cin >> number;

if (number < 0)
{
    cout << "Nekorrektnyy vvod" << endl;
    exit(1);
}

cout << "Chislo prinyato" << endl; 
C++

Остановка программы при ошибке

Если пароль неверный, дальше код не выполняется.

string password;
cin >> password;

if (password != "12345")
{
    cout << "Dostup zapreshen" << endl;
    exit(1);
}

cout << "Dostup razreshen" << endl; 
C++

Типичные ошибки

Ошибка 1: ожидание, что код после exit выполнится

cout << "Nachalo" << endl;
exit(0);
cout << "Eta stroka ne vypolnitsya" << endl; 
C++

Ошибка 2: непонимание смысла числа в exit(...)

exit(0);  // программа завершилась успешно
exit(1);  // программа завершилась с ошибкой
↑ К оглавлению

4. Оператор switch и break

Синтаксис и правила

switch позволяет выбрать одну из нескольких веток в зависимости от значения выражения.

switch (vyrazhenie)
{
    case znachenie1:
        komandy;
        break;

    case znachenie2:
        komandy;
        break;

    default:
        komandy;
}
C++

vyrazhenie - это переменная или выражение, значение которого проверяется.

case - отдельный вариант значения.

break - завершает выполнение switch после нужного case.

default - ветка, которая выполняется, если ни один case не подошел.

#include <iostream>
using namespace std;

int main()
{
    int day = 2;

    switch (day)
    {
        case 1:
            cout << "Ponedelnik" << endl;
            break;
        case 2:
            cout << "Vtornik" << endl;
            break;
        case 3:
            cout << "Sreda" << endl;
            break;
        default:
            cout << "Neizvestnyy den" << endl;
    }

    return 0;
}
C++

Оператор break также используется в циклах.

break;
C++

В цикле break полностью прерывает цикл.

В конструкции switch break завершает выбранную ветку.

Запомните: без break выполнение может перейти в следующий case.

Типовые рецепты

Меню выбора действия

int choice = 1;

switch (choice)
{
    case 1:
        cout << "Start" << endl;
        break;
    case 2:
        cout << "Settings" << endl;
        break;
    case 3:
        cout << "Exit" << endl;
        break;
    default:
        cout << "Unknown command" << endl;
}
C++

Выход из цикла при нужном значении

for (int i = 1; i <= 10; i++)
{
    if (i == 5)
    {
        break;
    }

    cout << i << endl;
}
C++

Ошибки

Ошибка 1: забытый break

int x = 1;

switch (x)
{
    case 1:
        cout << "Odin" << endl;
    case 2:
        cout << "Dva" << endl;
        break;
}
C++

Ошибка 2: использование сложных условий внутри case

// switch не подходит для условий вида x > 10
// для этого лучше использовать if / else
Markup
↑ К оглавлению

5. Оператор continue

Оператор continue используется только в циклах. Он пропускает оставшуюся часть текущей итерации и сразу переходит к следующей.

Синтаксис

continue;
C++

После выполнения continue команды ниже в теле цикла уже не выполняются для текущего шага.

#include <iostream>
using namespace std;

int main()
{
    for (int i = 1; i <= 5; i++)
    {
        if (i == 3)
        {
            continue;
        }

        cout << i << endl;
    }

    return 0;
}
C++

В этом примере число 3 не будет выведено, потому что при i == 3 управление сразу переходит к следующей итерации.

Практический вывод: continue удобно использовать, когда нужно пропустить отдельные значения, не прерывая весь цикл.

Типичные ошибки

Ошибка 1: путаница между break и continue

// break - полностью выходит из цикла
// continue - пропускает только текущую итерацию
Markup

Ошибка 2: использование continue вне цикла

// continue можно использовать только в циклах
Markup
↑ К оглавлению

6. Когда использовать switch, break, continue и exit

Сравнение подходов

exit завершает всю программу. switch удобен для выбора одной ветки по точному значению переменной. break нужен для выхода из цикла или завершения ветки switch. continue пропускает одну итерацию цикла и продолжает работу дальше.

// exit
if (error)
{
    exit(1);
}

// switch
switch (command)
{
    case 1:
        cout << "Start" << endl;
        break;
    default:
        cout << "Unknown" << endl;
}

// continue
for (int i = 0; i < 5; i++)
{
    if (i == 2)
    {
        continue;
    }

    cout << i << endl;
}
C++

Типичные ошибки

Ошибка 1: выбор switch для сложных условий

// Если нужны сравнения или диапазоны,
// лучше использовать if / else
Markup

Ошибка 2: слишком частое использование exit

// exit подходит для немедленного завершения,
// но не должен заменять обычную логику программы
Markup
Что выбрать на практике: используйте самый простой оператор, который ясно решает задачу и не запутывает код.
↑ К оглавлению

7. Практика: типовые задачи (с решениями)

Базовые задачи

Задача 1: Завершить программу при отрицательном числе

Если введено число меньше нуля, программа должна сразу завершиться.

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    int number;
    cin >> number;

    if (number < 0)
    {
        cout << "Oshibka" << endl;
        exit(1);
    }

    cout << "Chislo prinyato" << endl;
    return 0;
}
C++

Задача 2: Вывести день недели через switch

По числу от 1 до 3 вывести название дня.

#include <iostream>
using namespace std;

int main()
{
    int day;
    cin >> day;

    switch (day)
    {
        case 1:
            cout << "Ponedelnik" << endl;
            break;
        case 2:
            cout << "Vtornik" << endl;
            break;
        case 3:
            cout << "Sreda" << endl;
            break;
        default:
            cout << "Neizvestnyy den" << endl;
    }

    return 0;
}
C++

Задачи на операторы перехода

Задача 3: Прервать цикл при встрече числа 5

#include <iostream>
using namespace std;

int main()
{
    for (int i = 1; i <= 10; i++)
    {
        if (i == 5)
        {
            break;
        }

        cout << i << endl;
    }

    return 0;
}
C++

Задача 4: Пропустить число 3 в цикле

#include <iostream>
using namespace std;

int main()
{
    for (int i = 1; i <= 5; i++)
    {
        if (i == 3)
        {
            continue;
        }

        cout << i << endl;
    }

    return 0;
}
C++

Задача 5: Простой калькулятор на switch

#include <iostream>
using namespace std;

int main()
{
    int a = 10;
    int b = 5;
    char op = '+';

    switch (op)
    {
        case '+':
            cout << a + b << endl;
            break;
        case '-':
            cout << a - b << endl;
            break;
        default:
            cout << "Neizvestnaya operaciya" << endl;
    }

    return 0;
}
C++
↑ К оглавлению

8. Чек-лист самопроверки знаний

Отметьте пункты, которые вы действительно понимаете и можете применить без подсказок.

НавыкПроверка
Оператор exit Могу объяснить, что делает exit(0) и что означает число в скобках.
Синтаксис exit Помню синтаксис exit(kod_zaversheniya);.
Оператор switch Могу написать конструкцию switch с несколькими case и default.
Оператор break Понимаю, что break завершает цикл или ветку switch.
Оператор continue Могу использовать continue для пропуска текущей итерации цикла.
Разница между break и continue Могу объяснить, чем отличается выход из цикла от пропуска итерации.
Роль default Понимаю, зачем нужен блок default в switch.
Выбор конструкции Могу выбрать между if, switch, break, continue и exit в простой задаче.
Типичные ошибки Помню, что забытый break может изменить поведение программы.
↑ К оглавлению

Ссылки по теме

Четверг, 05 марта 2026
Операторы выхода и переходов в C++