Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Mattius en 31 de Mayo 2017, 05:55

Título: Java. Estructura de if else, else if condicionales en entorno BlueJ CU00636B
Publicado por: Mattius en 31 de Mayo 2017, 05:55
Estimados, vuelvo a dejar un ejercicio para su correción si son tan amables. Ejercicio CU00636B del tutorial básico de programación Java con entorno de aprendizaje BlueJ.

Saludos!

Código: [Seleccionar]
//
public class EjercicioIf
{
    private String tipo;
    private double grosor;
    private double diametro;
    private String marca;

    public EjercicioIf()
    {
       tipo= "";
       grosor= 0;
       diametro= 0;
       marca= "";
    }

    public void setTipo (String valorTipo){
        tipo= valorTipo;
    }
    public void setGrosor (double valorGrosor){
        grosor= valorGrosor;
    }
    public void setDiametro (double valorDiametro){
        diametro= valorDiametro;
    }
    public void setMarca (String valorMarca){
        marca= valorMarca;
    }

   
     public void comprobarDimensiones (){
         if (diametro > (1.4)) {
            System.out.println("La rueda de marca (" + marca + "), de tipo " + tipo + " de diametro (" + diametro + ") y de grosor (" + grosor + ") es para vehiculos grandes.");
        }
        else if ( /*(1.4) >= diametro >= (0.8))*/ (diametro <= (1.4) && diametro > (0.8))){
            System.out.println("La rueda de marca (" + marca + "), de tipo (" + tipo + ") de diametro (" + diametro + ") y de grosor (" + grosor + ")es para vehiculos medianos.");
        }
        else{
            System.out.println("La rueda de marca (" + marca + "), de tipo (" + tipo + ") de diametro (" + diametro + ") y de grosor (" + grosor + ") es para vehiculos pequeños.");
        }
        if ((diametro > (1.4) && grosor < (0.4)) || ((diametro <= (1.4)) && (diametro > (0.8)) && (grosor < (0.25)))){
           System.out.println("El grosor de la rueda de marca (" + marca + "), de tipo (" + tipo + ") de diametro (" + diametro + ") y de grosor (" + grosor + ") para esta rueda, es inferior al recomendado.");
        }
}
    public String getTipo (){
        return tipo;
    }
    public double getGrosor () {
        return grosor;
    }
    public double getDiametro (){
        return diametro;
    }
    public String getMarca (){
        return marca;
    }
}
Título: Re:Ejercicio CU00636B
Publicado por: pedro,, en 31 de Mayo 2017, 10:37
Hola Mattius.

Te vuelvo a decir como en el anterior ejercicio que hay que nombrar las clases adecuadamente, en este caso el nombre tendría que haber sido Rueda.

https://www.aprenderaprogramar.com/foros/index.php?topic=1460.msg7784#msg7784

En cuanto a la solución decir que está bien resuelto, solo comentarte que en el método comprobarDimensiones() repites mucho código, te dejo una alternativa para que vayas teniendo en cuenta estas cosas en intentes no trabajar doble cuando se puede hacer más fácil.
Código: [Seleccionar]
public void comprobarDimensiones() {

String msg = "La rueda de marca (" + marca + "), de tipo " + tipo
+ " de diametro (" + diametro + ") y de grosor (" + grosor + ")";
if (diametro > (1.4)) {
System.out.println(msg + " es para vehiculos grandes.");
} else if ( /* (1.4) >= diametro >= (0.8)) */(diametro <= (1.4) && diametro > (0.8))) {
System.out.println(msg + " es para vehiculos medianos.");
} else {
System.out.println(msg + " es para vehiculos pequeños.");
}
if ((diametro > (1.4) && grosor < (0.4))
|| ((diametro <= (1.4)) && (diametro > (0.8)) && (grosor < (0.25)))) {
System.out.println("El grosor de la rueda de marca (" + marca
+ "), de tipo (" + tipo + ") de diametro (" + diametro
+ ") y de grosor (" + grosor
+ ") para esta rueda, es inferior al recomendado.");
}
}

El último if también se podría abreviar, pero eso ya te lo dejo a ti. ;D

Saludos.
Título: Re:Java. Estructura de if else, else if,. CU00636B
Publicado por: Mattius en 31 de Mayo 2017, 19:54
Muchas gracias por tomarte un tiempo en verlo, lo corregiré y voy a tener en cuenta para mi próximo ejercicio lo que mencionas.

Saludos!