Curso 2023/2024
En los siguientes dos ejemplos, se está utilizando correctamente return
para devolver un resultado en una función que debe devolver un resultado:
En este
ejemplo la instrucción return suma
sirve para devolver un
entero que tenemos en suma
.
En este
ejercicio de refuerzo del tema 1 la instrucción return
contarCifra(n / 10, cifra)
sirve para devolver el entero que nos
devuelve a nosotros la llamada recursiva.
Sin embargo, lo que se hace en los siguientes ejemplos, que ilustran errores típicos de estudiantes, es incorrecto, por alguno de estos motivos:
no devolver ningún resultado en funciones que deben devolverlo;
en funciones que no deben devolver ningún resultado, tratar de devolverlo o trabajar como si lo devolvieran;
llamar a una función para obtener el resultado que devuelve y no hacer nada con él.
int factorial (int n) { if (n <= 1) return 1; else n * factorial(n - 1); } int main () { cout << factorial(7); }
void mostrarVectorAlReves(const vector<int> & v, int fin) { if (fin >= 0) { cout << v[fin] << endl; return mostrarVectorAlReves(v, fin - 1); } } void mostrarVectorAlReves(const vector<int> & v) { return mostrarVectorAlReves(v, v.size() - 1); }
void mostrarVectorAlReves(const vector<int> & v, int fin) { if (fin >= 0) { cout << v[fin] << endl; cout << mostrarVectorAlReves(v, fin - 1); } } void mostrarVectorAlReves(const vector<int> & v) { cout << mostrarVectorAlReves(v, v.size() - 1); }
bool buscarDato(const vector<int> & v, int dato, int fin) { if (fin < 0) return false; buscarDato(v, dato, fin - 1); return v[fin] == dato; } bool buscarDato(const vector<int> & v, int dato) { return buscarDato(v, dato, v.size() - 1); }