Duda general

Duda general

de Ines Beatriz Lorenzo Soumastre -
Número de respuestas: 1

Buenas, me surgió una duda haciendo la tarea. Ya lo resolví pero no sé qué es lo que estoy haciendo mal. Tengo la siguiente función:

Int funcion (variable1, variable2) { 
   if (condicion 0) {
       resultado valor 0; 
   }
   else {
       Int A= funcion(variable1, variable2)
       Int B= funcion(variable1, variable2)
 
       if (condicion 1)) {
           ...
           resultado=valor1;
       }
       else if (condicion 2) {
           resultado= valor2;
       }
       else if (condicion 3){
          resultado= valor 3;
       }
       else {
           resultado= valor 4;
       }
   }
   return resultado;
}

Al hacer esto no me retorna nada. En cambio cuando agrego el return dentro de cada if ahí sí me devuelve el resultado. Lo que hago es:

Int funcion (variable1, variable2) { 
   if (condicion 0) {
       return valor 0; 
   }
   else {
       Int A= funcion(variable1, variable2)
       Int B= funcion(variable1, variable2)
 
       if (condicion 1)) {
           ...
           return=valor1;
       }
       else if (condicion 2) {
           return= valor2;
       }
       else if (condicion 3){
          return= valor 3;
       }
       else {
           return= valor 4;
       }
   }
}
No encuentro que estén mal los paréntesis, podría estar haciendo algo mal en la función recursiva?
Si bien se soluciona poniendo los return adentro de cada condición, no entiendo por qué la otra opción está mal..
Saludos Inés!

En respuesta a Ines Beatriz Lorenzo Soumastre

Re: Duda general

de Matias Daniel De Castro Celli -

Inés.

Por lo que se ve, resultado está definido dentro del if... y lo pretendes usar fuera del mismo. Por lo que no creo que quede definido.

Proba definirlo afuera del if con un valor null o algo parecido. Y seguís modificándolo como hasta ahora.

Creo que va por ahí el error.

Saludos y espero que sirva.