Autor Tema: Ejercicio CU00636B if else condicionales java  (Leído 6020 veces)

jorge1290

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Ejercicio CU00636B if else condicionales java
« en: 25 de Julio 2014, 08:19 »
Hola, quiero saber si el código es correcto segun el ejercicio y si hay cosas que debo cambiar o mejorar, les agradezco el apoyo, me ha sido de gran ayuda, a continuación dejo el ejercicio a realizar y el código.

EJERCICIO

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Rueda (que representa a una rueda de un vehículo). Define una clase Rueda considerando los siguientes atributos de clase: tipo (String), grosor (double), diametro (double), marca (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Crea un método denominado comprobarDimensiones donde a través de condicionales if realices las siguientes comprobaciones:

a) Si el diámetro es superior a 1.4 debe mostrarse por consola el mensaje “La rueda es para un vehículo grande”. Si es menor o igual a 1.4 pero mayor que 0.8 debe mostrarse por consola el mensaje “La rueda es para un vehículo mediano”. Si no se cumplen ninguna de las condiciones anteriores debe mostrarse por pantalla el mensaje “La rueda es para un vehículo pequeño”.

b) Si el diámetro es superior a 1.4 con un grosor inferior a 0.4, ó si el diámetro es menor o igual a 1.4 pero mayor que 0.8, con un grosor inferior a 0.25, deberá mostrarse por consola el mensaje “El grosor para esta rueda es inferior al recomendado”.


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

    //constructor
    public Rueda (){
        tipo ="";
        grosor = 0;
        diametro = 0;
        marca = "";
    }

    //metodos set
    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;
    }

    //Metodos get
    public String getTipo (){return tipo;}

    public double getGrosor (){return grosor;}

    public double getDiametro (){return diametro;}

    public String getMarca (){return marca;}

    //Metodo comprobarDimensiones

    public void comprobarDimensiones (){
     

        if (diametro > 1.4){
            System.out.println ("La rueda es para un vehículo grande");
           
        }

        else if ((diametro <= 1.4)&& (diametro > 0.8)){
            System.out.println ("La rueda es para un vehículo mediano");
        }     

        else {
            System.out.println ("La rueda es para un vehículo pequeño");

        }

         if ((diametro > 1.4 && grosor < 0.4 )|| (diametro <= 1.4 && diametro > 0.8) && (grosor < 0.25))
         
         System.out.println ("el grosor para esta rueda es inferior al recomendado");
       
    }
}
« Última modificación: 31 de Agosto 2014, 18:46 por Alex Rodríguez »

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Revision del Ejercicio (CU00636B)
« Respuesta #1 en: 25 de Julio 2014, 17:01 »
 Hola jorge!
he verificado tu código y se puede decir que cumple con lo pedido por el ejercicio.

puntos a comentar: Siempre que declares variables en una clase, estas se deben declarar como variables privadas de la clase. Ejemp: private String tipo;

Dos puntos a comentar en la siguiente fracción de tu código:

Código: [Seleccionar]
if ((diametro > 1.4 && grosor < 0.4 )|| (diametro <= 1.4 && diametro > 0.8) && (grosor < 0.25))
 System.out.println ("el grosor para esta rueda es inferior al recomendado");

Primero: todos los paracentesis que están dentro del if(...) se podría decir que están de mas, lo que le resta claridad a tu código, pienso que podrías no incluirlos.

Segundo: si te fijas en esta fracción del código luego del if(...) no as incluido las llaves {instrucciones} que se supone contendrán las instrucciones a ejecutar. Aunque el código compila y trabaja sin errores, esto podría ser una mala practica.

he editado esta fracción de tu código y es así como pienso debería lucir:
Código: [Seleccionar]
  if (diametro > 1.4 && grosor < 0.4 || diametro <= 1.4 && diametro > 0.8 && grosor < 0.25){
 System.out.println ("el grosor para esta rueda es inferior al recomendado");
   }
Espero captes la idea.
Salu2!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

jorge1290

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:Revision del Ejercicio (CU00636B)
« Respuesta #2 en: 25 de Julio 2014, 21:57 »
hola Sniper!
muchas gracias por los concejos me han ayudado mucho,
eso de poner parentesis dentro del If es una duda que tenia y me haz ayudado a aclarar esa duda, lo de las llaves {} no me habia dado cuenta, pero muchas gracias por hacerlo notar porque asi ya tendre mas en cuenta estos detallito que son importantes corregir  :)

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Revision del Ejercicio (CU00636B)
« Respuesta #3 en: 25 de Julio 2014, 23:27 »
Ojo!!

En ocasiones si nos sera necesario incluir paréntesis dentro de un if(). Un ejemplo seria este:
Código: [Seleccionar]
public class Parentesis
{
 public boolean utilidadDeParentesis()
 {
  if(1+2*3 == 9)
  {
    return true;
  }
  else
  {
    return false;
  }
 }
}

en este código intento decirle a java que si 1+2 = 3 y 3*3 = 9 devuelva true, si se compila el código y se ejecuta el método podremos notar que devuelve false, esto se debe a que java interpreto la sintaxis de una forma distinta a la esperada por mi, java a interpretado: 2*3 = 6 y 1+6 = 7 osea 1+6 = 7, si cambiamos el 9 por un 7 entonces si devolverá true.

La forma correcta para que devuelva true si la operacion es igual a 9 la obtendríamos con la ayuda de unos paréntesis:
Código: [Seleccionar]
public class Parentesis
{
 public boolean utilidadDeParentesis()
 {
  if((1+2)*3 == 9)
  {
    return true;
  }
  else
  {
    return false;
  }
 }
}
y esto se interpreta así: 1+2 = 3 y 3*3 = "9"
java primero calcula lo que este dentro de los paréntesis y luego continua con lo demás.

Te hago este aclarando para que tengas en cuenta que usar los paréntesis es circunstancial y de la circunstancia no requerirlos es preferible mantener un código limpio y no incluirlos.
Salu2!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".