Рекурсия может быть использована. Этот пример повторяет то, что вы вводите, пока не наберете «stop» в качестве примера:
#include <iostream>
#include <string>
void do_it()
{
std::string s;
std::cin >> s;
if (s == "stop")
return;
std::cout << s << '\n';
do_it();
}
int main()
{
do_it();
return 0;
}
Возможно, это не тот случай, но рекурсия имеет свои недостатки. Во-первых, это медленнее, чем простой цикл, потому что в таких языках, как C ++, вызов функций относительно дорог. И это может вызвать переполнение стека, если оно повторяется слишком много раз. Сказав это, рекурсивная версия функции иногда может быть чище и легче для чтения / понимания. Вы можете узнать больше о плюсах и минусах рекурсии здесь .