РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
14 of 815 menu

Оператор goto

Оператор goto выполняет безусловный переход к метке с указанным именем. Метка - это идентификатор, за которым следует двоеточие, размещённый внутри той же функции, где находится сам оператор. Переход происходит мгновенно: весь код между оператором goto и меткой пропускается, а выполнение продолжается с первой инструкции после метки. Оператор принимает единственный параметр - имя метки, к которой нужно перейти.

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

Синтаксис

goto label; // ... label: // код, начиная с этой строки

Метка должна находиться в той же функции, что и оператор goto. Прыжок между разными функциями невозможен.

Пример

Давайте выполним переход вперёд, пропустив часть кода:

#include <iostream> using namespace std; int main() { cout << "start" << endl; goto skip; cout << "this is skipped" << endl; skip: cout << "end" << endl; return 0; }

Результат выполнения кода:

"start" "end"

Пример

Давайте используем goto для выхода из вложенных циклов:

#include <iostream> using namespace std; int main() { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (i * j == 6) { cout << i << " " << j << endl; goto out; } } } out: cout << "done" << endl; return 0; }

Результат выполнения кода:

2 3 "done"

Пример

Давайте выполним переход назад, организовав повторение кода:

#include <iostream> using namespace std; int main() { int count = 0; loop: cout << count << endl; count++; if (count < 3) { goto loop; } return 0; }

Результат выполнения кода:

0 1 2

Смотрите также

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