C++ Оператор goto
gotoОператор позволяет безусловно передать управление помеченному оператору внутри той же функции.
Примечание:В любом языке программирования не рекомендуется использовать оператор goto. Поскольку это затрудняет отслеживание потока управления программы, делая программу трудной для понимания и сложной для изменения. Любую программу, использующую оператор goto, можно переписать так, чтобы оператор goto не требовался.
Синтаксис
В C++goto Синтаксис оператора:
goto label; .. . label: statement;
Здесь,label— это идентификатор, который обозначает помеченный оператор и может быть любым обычным текстом, кроме ключевых слов C++. Помеченный оператор может быть любым оператором, размещённым после идентификатора и двоеточия (:).

Блок-схема
Пример
Пример
using namespace std;
int main ()
{
// Объявление локальной переменной
int a = 10;
// выполнение цикла do
LOOP:do
{
if( a == 15)
{
// пропустить итерацию
a = a + 1;
goto LOOP;
}
cout << "значение a:" << a << endl;
a = a + 1;
}while( a < 20 );
return 0;
}
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19
Одно из хороших применений оператора goto — выход из глубоко вложенных подпрограмм. Например, рассмотрим следующий фрагмент кода:
for(...) {
for(...) {
while(...) {
if(...) goto stop;
.
.
.
}
}
}
stop:
cout << "Error in program.\n";
Устранениеgotoприведёт к выполнению некоторых дополнительных проверок. Простой операторbreakздесь не сработает, потому что он только заставит программу выйти из самого внутреннего цикла.
Другие расширения