В некоторых случаях снижается производительность за выполнение одного и того же теста дважды, что не всегда может быть тривиальным. Альтернативой этому является хранение и передача логических значений, что становится уродливым.
Нарушение производительности незначительно. Однако я согласен с тем, что повторное выполнение теста не является хорошим решением.
Я считаю, что вопрос заключался в том, как убрать метки, а не в том, как оптимизировать алгоритм. Мне показалось, что оригинальный постер не знал, как использовать ключевые слова «продолжить» и «прервать» без меток, но, конечно, мои предположения могут быть неверными.
Когда речь идет о производительности, пост не дает никакой информации о реализации других функций, поэтому, насколько я знаю, они также могут загружать результаты через FTP, как состоящие из простых вычислений, встроенных компилятором.
При этом повторение одного и того же теста дважды не является оптимальным - в теории.
РЕДАКТИРОВАТЬ: Если подумать, пример на самом деле не ужасное использование меток. Я согласен, что "goto is no-no" , но не из-за такого кода. Использование меток здесь не оказывает существенного влияния на читаемость кода. Конечно, они не являются обязательными и могут быть легко опущены, но не использовать их просто потому, что «использование меток плохо» в данном случае не является хорошим аргументом. В конце концов, удаление меток не делает код намного проще для чтения, как уже прокомментировали другие.