Я бы сказал, что факт, что использование goto
считается плохой практикой, когда дело доходит до программирования на C/C++.
Однако, учитывая следующий код
for (i = 0; i < N; ++i)
{
for (j = 0; j < N; j++)
{
for (k = 0; k < N; ++k)
{
...
if (condition)
goto out;
...
}
}
}
out:
...
Интересно, как эффективно добиться такого же поведения, не используя goto
. Я имею в виду, что мы могли бы сделать что-то вроде проверки condition
в конце каждого цикла, например, но AFAIK goto будет генерировать только одну инструкцию сборки, которая будет jmp
. Так что это самый эффективный способ сделать это, о котором я могу думать.
Есть ли другие, которые считаются хорошей практикой? Я ошибаюсь, когда говорю, что считать неудачной практикой использовать goto? Если да, то это будет один из тех случаев, когда это хорошо использовать?
Спасибо