Это бесконечный цикл. Нет условий, просто цикл навсегда. Единственный выход - перейти к шагу 19. В языках, подобных C, вы можете написать это как while (true)
или for (;;)
:
for (;;) {
// ...
if (deg(f) == 0) {
goto afterLoop;
}
// ...
}
afterLoop:
// ...
goto
нахмурился, хотя. Было бы лучше заменить goto Step 32
на оператор break
, который немедленно выходит из цикла:
for (;;) {
// ...
if (deg(f) == 0) {
break;
}
// ...
}
Для чего стоит, если у вас не было шагов 21-30, вы можете использовать цикл do / while, где условие цикла идет внизу цикла вместо вершины:
do {
// ...
}
while (deg(f) != 0);
Это сработало бы, если строки 18-20 были последними в цикле. Поскольку это не так, похоже, вариант №2 - единственный вариант.