(Только для тех, кто совсем не слышал о холиварах на тему goto.)
Обычно goto реабилитируют, только если надо выскочить из двух или больше циклов сразу. Тогда альтернатива ему — куча условий по одному на каждый покидаемый цикл и как минимум один дополнительный флаг. Не всегда так страшно, как малюют. Особенно если в языке есть специальный оператор для такого выпрыгивания (циклы можно пометить или глубину вложения указать числом).
Либо все переписать по схеме, предложенной arseniiv
Да, появится
continue или даже мелкие циклики, если позаботиться о том, чтобы пользователь не перевводил правильные первое значение, если ввёл неправильно второе (типа подсказка для автора
).
diman19rus, если у вас действительно не очень хорошо с control flow, просто возьмите любую книжку с введением в C++ и почитайте в начале всё подряд. Например, до функций — кажется, обычно после них уже управляющие конструкции, кроме работы с исключениями и подобных откладываемых вещей, не рассматриваются.
Кстати, я поначалу совсем не заметил этих
return(0). С ними две проблемы, раз уж пока ещё в теме не описаны:
• Скобки совершенно лишние:
return — это не функция. Пробелом отделить хватит.
• Ноль возвращать, если программа завершилась ненормально, не стоит. Написать другое число — первый шаг к лёгкому написанию корректно взаимодействующей с окружением консольной программы, если такая понадобится (второй шаг — завести
enum для кодов ошибок).