Autor Tema: Revision ejercicio CU00638B condicionales switch java  (Leído 4343 veces)

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Revision ejercicio CU00638B condicionales switch java
« en: 18 de Julio 2014, 02:56 »
Buenas dia al intentar de darle return a motoresParaAgua e sale un error pero si se lo quito me dice que no tiene errores pero no me da de regreso el valor Booleano, que es lo que no estoy haciendo bien me dice "incompatibles Types". saludos

Código: [Seleccionar]
//Ejercicio CU00638
//Anexando al Programa Motor un Metodo boolean dimeSiMotorEsParaAgua
//El objetivo es usar una Variable Local

//Programa Motor y utilizacion de la instruccion Switch(Siempre se usa y se espera Variables tipo int o char)
//Ejercicio CU00637B
//Programa Hecho por Osvaldo Maciel Julio 16 2014


public class Motor2{
   
 int tipoBomba;
 String tipoFluido, combustible;
 
 //constructor
 public Motor2(){
   
     tipoBomba=0;
     tipoFluido="";
     combustible="";
    }//cierre constructor
   
    //Metodos para establecer valores de atributos
    public void setTipoBomba(int ValorTipoBomba){//1
    tipoBomba=ValorTipoBomba;
    }//1.1

    public void setTipoFluido(String ValorTipoFluido){//2
        tipoFluido=ValorTipoFluido;
    }//2.2
   
    public void setCombustible(String ValorCombustible){//3
        combustible=ValorCombustible;
    }//3.3
   
   
    //Incisos del Ejercicios
    //Metodo dimeTipoMotor
   
    public void dimeTipoMotor(){//4
        //No uso SET en dimeTipoMotor porque no voy a solicitar informacion en Teclado ya que la informacion
        //que requiero es la de la bomba y esa informacion ya la tengo almacenada cuando declare el metodo
        //setTipoBomba, por lo tanto solo lo mando llamar,y por eso tampoco requiero Parametros
       
        //Con este metodo solo estoy utilizando la informacion que ya tenia almacenada en tipoBomba
        //lo que hago aqui es solo utlizar esa informacion en el momento que yo quiera con este metodo
        //si escogo tipoBomba en mi objeto con el numero 2 no hace nada solo la almacena con esa informacion y
        //en el atributo del objeto llamado void dimeTipoBomba jala la info. y la lleva al numero de case correspondiente deacuerdo al numero que apreto y quedo guardado
   
        switch(tipoBomba){//5
            case 0:
            System.out.println("No hay establecido un valor definido para el tipo de bomba");
            break;
           
            case 1:
            System.out.println("La bomba es una bomba de agua");
            break;//Si quito los Breaks el programa corre hasta encontrar el primer Break
           
            case 2:
            System.out.println("La bomba es una bomba de gasolina");
            break;
           
            case 3:
            System.out.println("La bomba es una bomba de hormigon");
            break;
           
            case 4:
            System.out.println("La bomba es una bomba de pasta alimenticia");
            break;
           
            default:
            System.out.println("No existe un valor valido para tipo de bomba");
            break;
        }//5.5
       
    }//4.4
   
   
    //Metodo dimeSiMotorEsParaAgua,usando una Variable Local
   
    void  dimeSiMotorEsParaAgua(){//No uso public ni private ya que la variable que se va a usar es Local.
       
        boolean motorEsParaAgua=true;
       
       
        if(tipoBomba==1){
           motorEsParaAgua=true;
          }//cierre if
            else {
                motorEsParaAgua=false;
            }//cierre else
           
        return motorEsParaAgua;
     
     
     
    }//cierre Metodo dimeSiMotorEsParaAgua
   
    //Metodos para obtener Valores
    public int getTipoBomba(){return tipoBomba;}
    public String getTipoFluido(){return tipoFluido;}
    public String getscombustible(){return combustible;}
   
   
}//cierre Clase
« Última modificación: 31 de Agosto 2014, 18:58 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Revision ejercicio CU00638B
« Respuesta #1 en: 18 de Julio 2014, 10:15 »
Hola, para pegar código usa por favor el botón # del foro y pega el código entre las etiquetas [ code ] ... [ / code]

En el código tienes mal esto: void  dimeSiMotorEsParaAgua()

Si el método va a devolver algo no puedes poner void, tienes que poner lo que va a devolver, por ejemplo:

public boolean dimeSiMotorEsParaAgua()

No olvides poner public.

Siempre tienes que pensar si el método va a devolver algo (en ese caso has de poner el tipo de lo que devuelve) o no ( en ese caso has de poner void)

Saludos!

Guille

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
Re:Revision ejercicio CU00638B condicionales switch java
« Respuesta #2 en: 03 de Octubre 2014, 20:55 »
Queria poner un text junto al retun que dijera
 " motorEsParaAgua ahora es " + motorEsParaAgua pero pude.. se puede hacer?

Código: [Seleccionar]
public class Motor_Ejercicio_class38
{
    // instance variables - replace the example below with your own
    private int tipoBomba;
    private String tipoFluido,combustible;

    /**
     * Constructor for objects of class Motor_Ejercicio_class38
     */
    public Motor_Ejercicio_class38()
    {
        // initialise instance variables
        tipoBomba=0;
        tipoFluido="";
        combustible="";

    }

    //Setters
    public void setTipoBomba( int ValorTipoBomba )
    {
        tipoBomba=ValorTipoBomba;
    }

    public void setTipoFluido( String ValorTipoFluido )  {

        tipoFluido=ValorTipoFluido;
    }

    public void setCombustible( String ValorCombustible )  {

        combustible=ValorCombustible;
    }

    // Getters

    public int getTipoBomba( ) { return    tipoBomba;}

    public String getTipoFluido( ) { return    tipoFluido;}

    public String getCombustible( ) { return    combustible;}

    /*Crea un método
    tipo función que devuelva un booleano (true o false) denominado dimeSiMotorEsParaAgua()
    donde se cree una variable local booleana motorEsParaAgua de forma que si el tipo de
    motor tiene valor 1 tomará valor true y si no lo es tomará valor false. El método
    debe devolver la la variable local booleana motorEsParaAgua.
     */

    public boolean dimeSiMotorEsParaAgua() {
        boolean motorEsParaAgua =false;
        if (tipoBomba == 1) {
            motorEsParaAgua = true;
            tipoFluido= "agua" ;
        }
        return  motorEsParaAgua;

       

    }
}

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Revision ejercicio CU00638B condicionales switch java
« Respuesta #3 en: 05 de Octubre 2014, 11:19 »
Un return devuelve una sola cosa, por ejemplo un valor numérico, o un valor de cadena de texto, o un valor booleano. Si motorEsParaAgua es booleano, no puedes hacer return "Ahora motor es para agua es"+motorEsParaAgua

Porque estarías mezclando cosas.

Lo que puedes hacer si quieres es escribir:

System.out.println ("motorEsParaAgua vale: "+motorEsParaAgua);
return motorEsParaAgua;

Aquí primero muestras el mensaje y luego haces el return del método.

De todas formas esto no es muy recomendable, porque estarías mezclando cosas dentro de lo que hace un método y un método sólo debe hacer una cosa. Los mensajes sólo debes mostrarlos si los pide el enunciado del ejercicio.

Salu2

 

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".