4
respuestas

[Duda] A - Incorrecta

public class Producto {

String nombre;
double precio;
double descuentoParaDebito;

double calculaPrecioFinal(boolean pagoMedianteDebito) {
    if (pagoMedianteDebito == true) {
        double precioFinal = precio - descuentoParaDebito;
    } else {
        double precioFinal = precio;
    }
}

}

A - El tipo de retorno del método es incorrecto. C- Falta devolver el valor de la variable precioFinal.

No entiendo por qué la A, es incorrecta, sé que la C es correcta, pero la A tambien deberia de serlo, porque no hay ningun retorno en el Código, por lo tanto, el tipo de retorno no devuelve nada!!!!!!!!!!

4 respuestas

¡Hola Amaury, espero que estés bien!

Entiendo tu confusión, pero la opción A es incorrecta. El problema con el método calculaPrecioFinal es que tiene un tipo double de retorno, pero no está devolviendo ningún valor. Para corregirlo, debes retornar el valor double al final de la función.

Por ejemplo, si el precio final es un número decimal, podrías definir el tipo de retorno como double:

double calculaPrecioFinal(boolean pagoMedianteDebito) {
    double precioFinal;
    if (pagoMedianteDebito) {
        precioFinal = precio - descuentoParaDebito;
    } else {
        precioFinal = precio;
    }
    return precioFinal;
}

De esta manera, el método calculaPrecioFinal devolverá el valor correspondiente al precio final del producto.

Espero que esta explicación te ayude a aclarar tus dudas. ¡Sigue adelante con tus estudios de Java!

Espero haber ayudado y buenos estudios!

Hola me gustaria que por favor pasar el contenido de la otra clase para practicar y ver su planteamento sus clases.

Agradezco su ayuda

Cual clase, podrias ser mas especifico para poder ayudarte

hola Amaury: Para ver si se puede aclarar un poco mas tu duda de por que es incorrecta hay que ver como se declaran las funciones en java

modificador Retorno nombreDeLaFuncion(){
     //procedimientos
     return ;
}

Existen varios tipos de retorno, pueden ser variables primitivas, clases java, clases nuestras pero hay una que dice que el metodo no retorna nada "void"... entonces para que el metodo no retorne nada el donde va el retorno se le colocaría la palabra void quedando asi

modificador void nombreDeLaFuncion(){
      //procedimientos
}

al ser una funcion sin retorno (tambien conocida como procedimiento) no hace falta colocar la palabra return dentro de la funcion ya que solo se usa para devolver un valor despues de ciertos procedimientos.

ahora veamos el caso

public double calculaPrecioFinal(boolean pagoMedianteDebito) {
    if (pagoMedianteDebito == true) {
        double precioFinal = precio - descuentoParaDebito;
    } else {
        double precioFinal = precio;
    }
}

al tener en la declaracion la palabra double la funcion, estas obligado a utilizar la palabra return y tambien a devolver algo de ese tipo específico si o si, por que si no la aplicacion no va a compilar directamente, ya que declaraste que tiene que retornar algo y no lo estas haciendo