Оператор gotoпозволяетнам пропускать часть кода и попадать сразу в заданное место
Лучше не использовать goto из за сложности читаемости кода
Однако иногда его использование не является ошибкой, например для выхода из цикла
Синтаксис
cout << "Один" << endl;
goto link; // пропускаем часть кода которая должна выводить "Два"
cout << "Два" << endl;
link: // ссылка с любым названием
cout << "Три" << endl;
Оператор goto можно сравнить с якорными ссылками в HTML
Проверка пароля, защита от брута
int password; // пароль
short times = 0; // количество попыток ввода пароля
start:
cout << "Enter your key: ";
cin >> password;
switch (password)
{
case 12345678: // верный пароль
cout << " licence activated, good luck and get fun!" << endl;
break;
default: // неверный пароль
++times; // поибавляем количество попыток
if (times == 3)
{
cout << "Brootforce detected!!!" << endl;
break; // если попыток больше 3х, то выходим из цикла
}
cout << "incorrect!" << "try again" << endl << endl;
goto start; // если пароль неверный - отправляем к началу цикла
break;
}